Java Swing GUI:
我正在使用ActionListener在单击按钮时执行操作。我想要做的是当点击一个按钮,打开一个新面板,但从另一个文件加载/获取新面板。
这是我到目前为止,但我只是链接到另一个文件。谢谢! =]
public void actionPerformed(java.awt.event.ActionEvent e) {
//something like this...
loadFile(newPlane.java);
}
inventoryDisplay.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
inventoryDisplayActionPerformed(evt);
}
private void inventoryDisplayActionPerformed(java.awt.event.ActionEvent evt) {
//open a new panel by opening a new file ex: inventory.java
}
我问这个的原因是因为当我使用netbeans创建一个GUI程序时...我不知道如何在按钮崩溃时使用“设计视图”制作一个新的planel。由于netbeans只显示主面板。
答案 0 :(得分:2)
Java不能在包含的基础上工作,因此您需要定义类并实例化它们。
您可以创建一个静态工厂方法来获取完全配置的JPanel:
public class ClassWhereStored {
public static JPanel newJPanel(){
JPanel panel = new JPanel();
// configure it
return panel;
}
}
...
public void actionPerformed(java.awt.event.ActionEvent e) {
JPanel panel = ClassWhereStored.newPanel()
frame.add(panel);
}
答案 1 :(得分:1)
对于代码,您需要做的是将类文件放在同一个文件夹中。
即,与以下代码有关......
public void actionPerformed(java.awt.event.ActionEvent e) {
//something like this...
loadFile(newPlane.java);
}
...您需要编译newPlane.java,获取创建的类文件并将其放在与您尝试“loadfile”的类相同的文件夹中。
然后,在你的类中(我假设它扩展了JFrame或JPanel),你需要这样做,而不是loadFile:
public void actionPerformed(java.awt.event.ActionEvent e) {
newPlane plane = new newPlane();
add(plane);
}
通常,在同一个地方编写类代码会更容易。不要忘记您可能必须从班级中删除组件。