我是新手来编程。我创建了一个Jtabbedpane并添加了4个jpanel。
4 jpanel中的所有按钮和标签都在同一个java类中,并且开始变得杂乱无章。我正在使用Intellij。如果我可以将与一个面板相关的所有项目和事件放在它自己的类中,那么将是4个面板的4个类,并且只是对主框架中的那些类的引用。不确定如何执行此操作,因为大多数代码都是由IDE生成的。
如果有办法做到这一点或教程,请告诉我。
答案 0 :(得分:0)
是的,你可以很容易地解决这个问题。代码生成新面板的任何地方,可能是作为" build"方法,你可以把它拉出来,并在另一个类的结构中。一个例子看起来像这样:
// New class file named testPanel.java
public class testPanel extends JPanel{
// Constructor
public textPanel(){
// Add an example button
JButton btn_exit = new JButton("Exit");
btn_exit.addActionListener(new ExitButtonListener());
buttons.add(btn_exit);
}
// Private inner class which does event handling for our example button
private class ExitButtonListener implements ActionListener{
public void actionPerformed(ActionEvent e){
System.exit(0);
}
}
// Add whatever other code you like here or above or anywhere else :)
}
然后要在主JFrame中使用该面板,您可以像这样聚合它:
private testPanel pnl_test = new textPanel();
// You can place this in the constructor
// for your JFrame without the "MyJFrame."
// But for demonstration purposes I will include it
MyJFrame.add(pnl_test);
// Or if you were placing a panel inside of another panel,
// you can use the same method associated with a JPanel object
MyJPanel.add(pnl_test);