Java 从不同类向JPanel添加JButton
嗨,有没有一种方法可以从不同的类将JButton添加到JPanel中。所以基本上,JPanel是a类的,而JButton是B类的。我怎么能把按钮放在另一个类的面板上呢。希望这是有意义的,如果你需要我澄清,让我知道。提前感谢您的帮助。您可以制作如下内容:Java 从不同类向JPanel添加JButton,java,swing,jpanel,jbutton,Java,Swing,Jpanel,Jbutton,嗨,有没有一种方法可以从不同的类将JButton添加到JPanel中。所以基本上,JPanel是a类的,而JButton是B类的。我怎么能把按钮放在另一个类的面板上呢。希望这是有意义的,如果你需要我澄清,让我知道。提前感谢您的帮助。您可以制作如下内容: public OtherClass { public JButton getButton (){ JButton b = new JButton(); b.set...(); b.set..
public OtherClass {
public JButton getButton (){
JButton b = new JButton();
b.set...();
b.set...();
b.set...();
b.set...();
return b;
}
}
然后可以使用此函数创建始终相同的JButton
另一个选项是将按钮创建为静态并在其他类中使用,这不是一个很好的解决方案,但它可以是一个选项您需要类a中类B的实例对象来访问其变量和方法。然后,您可以编写如下内容:
public ClassB {
public JButton getButton() {
return myJButton;
}
}
另一种方法是使JButton在类B中是静态的,然而这是一种肮脏的攻击,是一种糟糕的设计模式
public ClassB {
public static JButton myJButton;
}
然后,您可以使用ClassB从ClassA访问JButton。myJButton您可以继承类或使用单个类:
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;
}
}
}