我有几个类来创建一个非常简单的 GUI ( JFrame
),其中包含一些对象,例如 JTabbedPanel 和JTree
. 在 中创建功能区的类之一JTabbedPanel
创建了JButton
,它应该具有更新JTree
.
我确实有一些 getter,但我不知道如何使用JButton
更新在 main 方法中创建的对象(GUI 对象,我可以从那里到达JTree
)。
如何更新在实际类的 main 方法中创建的对象上的某些内容JButton
?
我可能不得不改变我的项目结构。
public class Gui extends JFrame{
private Ribbon ribbon;
private Status status;
public Panel panel;
public Gui(){
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setTitle("INIT TITLE");
setExtendedState(Frame.MAXIMIZED_BOTH);
setMinimumSize(new Dimension(600,400));
setVisible(true);
try {
UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");
} catch (Exception e) {
e.printStackTrace();
}
ribbon = new Ribbon();
add(ribbon, BorderLayout.NORTH);
status = new Status();
add(status, BorderLayout.SOUTH);
panel = new Panel();
add(panel, JSplitPane.HORIZONTAL_SPLIT);
//panel.setLeftComponent(panel.getTree());
//panel.openProject();
setVisible(true);
panel.loadProject();
}
功能区并没有做很多事情:
公共类功能区扩展 JTabbedPane {
public Ribbon(){
addTab("Home", null, new RibbonHome());
addTab("Import", null, new RibbonImport());
addTab("Options", null, new RibbonOptions());
}
}
但是 Ribbon-Tab 创建了一些按钮:
public class RibbonHome extends JPanel{
private JButton b1, b2, b3;
public RibbonHome(){
b1 = new JButton("test1");
b2 = new JButton("test2");
b3 = new JButton("test3");
add(b1);
add(b2);
add(b3);
b1.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent arg0) {
//UPDATE the JTree
}
});
}
}