您有没有办法从不同的类添加JButton到JPanel。所以基本上JPanel在Class A
中并且JButton在Class B
中如何将按钮放在Panel上,该按钮位于不同的类中。希望如果您需要我澄清让我知道,这是有道理的。感谢您的帮助。
答案 0 :(得分:0)
你可以做这样的事情:
public OtherClass {
public JButton getButton (){
JButton b = new JButton();
b.set...();
b.set...();
b.set...();
b.set...();
return b;
}
}
然后你可以使用这个函数来创建一个总是相同的JButton。
另一种选择是将Button设置为静态并在OtherClass中使用它,这不是一个很好的解决方案,但它可以是一个选项
答案 1 :(得分:0)
您需要A类中B类的实例对象来访问其变量和方法。然后,您可以编写如下内容:
public ClassB {
public JButton getButton() {
return myJButton;
}
}
另一种方法是在类B中使JButton静态,但这是一个糟糕的设计模式。
public ClassB {
public static JButton myJButton;
}
然后,您可以使用ClassB.myJButton
答案 2 :(得分:0)
您可以继承类或使用单个类:
public class Example{
public static void main(String []args){
JFrame wnd = new JFrame();
//edit your frame...
//...
wnd.setContentPane(new CustomPanel()); //Panel from your class
wnd.getContentPane().add(new CustomButton()); //Button from another class
//Or this way:
wnd.setContenPane(new Items().CustomPanel());
wnd.getContentPane().add(new Items().CustomButton());
}
static class CustomButton extends JButton{
public CustomButton(){
//Implementation...
setSize(...);
setBackground(...);
addActionListener(new ActionListener(){
//....
});
}
}
static class CustomPanel extends JPanel{
public CustomPanel(){
//Implementation...
setSize(...);
setBackground(...);
OtherStuff
//....
}
}
static class Items{
public JButton CustomButton(){
JButton button = new JButton();
//Edit your button...
return button;
}
public JPanel CustomPanel(){
JPanel panel = new JPanel();
//Edit your panel...
return panel;
}
}
}