Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Центр помощи > [Java]Java-Bean


Автор: Unlimited 3.2.2007, 02:01
Привет!!!
мне нужна срочно помощь,

нужно создать(написать) простой Bean  в форме Button(нужно использовать Klasse "java.awt.Button").
Надпись на Button должно быть изменяемое simple Property. А также к нему простой BeanInfo-Klasse.

Заранее благодарен!!!!!

Автор: tux 3.2.2007, 10:37
Для домашних заданий, курсовых, существует "Центр Помощи".

Тема перенесена! 

Автор: y3u 3.2.2007, 14:34
хм... видимо, под словом 
Цитата
Klasse
 подразумевается слово class

Автор: LSD 3.2.2007, 15:51
java.awt.Button уже является бином и доступ к надписи реализован в виде проперти. Так что надо сделать? И бин-инфо писать во всему классу java.awt.Button?

Автор: Unlimited 4.2.2007, 01:09
это правильно?

Код

import java.applet.Applet;
import java.awt.Button;
import java.awt.Color;

public class aufgabe extends Applet {

    Button myButton;

    public void init() {
        
        setLayout(null);
        setSize(360,30);
        setBackground(Color.white);
        myButton = new Button("Button");
        add(myButton);

    }

    public Button getMyButton() {
        return this.myButton;
    }

    public void setMyButton(Button myButton) {
        this.myButton = myButton;
    }

    public String getNameFromButton(){
        return this.myButton.getName();
    }
    
    public void setNameFromButton(String newName) {
        this.myButton.setName(newName);
    }

}




простой BeanInfo-Klasse

Код

import java.beans.BeanDescriptor;
import java.beans.IntrospectionException;
import java.beans.PropertyDescriptor;
import java.beans.SimpleBeanInfo;

public class ButtonBeanInfo extends SimpleBeanInfo {
    
    public BeanDescriptor getBeanDescriptor(){
        
        BeanDescriptor bd= new BeanDescriptor(aufgabe3_JAV14.class, null);
        bd.setDisplayName("ButtonBean");
        return bd;
    }
    
    public PropertyDescriptor[] getPropertyDescriptor(){
        try {
            String className= "aufgabe";
            Class beanClass = null;
            try {
                beanClass = Class.forName(className);
                
            } catch (ClassNotFoundException cnfe) {
                System.out.println("Klasse \"" + className
                        + "\"  nicht gefunden");
            }
            PropertyDescriptor p1 = 
                new PropertyDescriptor("aufgabe",beanClass);
            p1.setDisplayName("Button Bean");
            p1.setShortDescription("Titel der Bean");
            PropertyDescriptor[] pda = {p1};
            return pda;
        } catch (IntrospectionException e) {
            e.printStackTrace();
            return null;
        }
    }

}




Автор: LSD 4.2.2007, 11:15
Цитата(Unlimited @  4.2.2007,  01:09 Найти цитируемый пост)
это правильно?

Нет.

1. Классы в Java надо называть с большой буквы, так что не aufgabe, а - Aufgabe.
2. Класс bean info дожен иметь имя МойКлассBeanInfo, так что в данном случае AufgabeBeanInfo.
3. Зачем нужно делать 
Код
beanClass = Class.forName(className);

когда можно просто
Код
beanClass = Aufgabe.class;

4. BeanDescriptor должен соответсвовать тому классу который ты описываешь, у тебя же какой-то aufgabe3_JAV14.
5. PropertyDescriptor должен содержать имя проперти, а не класса, в твоем случае у тебя два проперти: nameFromButton и myButton.
6. Может это и не ошибка, но у тебя 2 проперти, а описан только один.

Автор: Unlimited 5.2.2007, 03:42
Спасибо за помощь!!!
Теперь всё работает, если кому нужно могу код выставить.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)