【发布时间】:2013-12-03 14:43:10
【问题描述】:
我正在开发一个有点像菜单来控制装配线的 GUI。当程序运行时,它会显示带有第一组按钮的窗口。单击一个按钮应使该窗口消失,并应使另一个窗口与先前选择的菜单一起出现。如何实现按钮上的操作?两个菜单都在不同的类中,还有一个带有 main 函数的额外类,目前它只创建新对象并将第一个窗口的可见性设置为 true。
这两个都是:
主要的:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class InfInd {
public static void main(String[] args) {
Cliente c = new Cliente();
c.setVisible(true);
}
}
第一个菜单:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class Cliente extends JFrame implements ActionListener {
public JLabel titulo;
public JButton ordens;
public JButton listaordens;
public JButton stats;
public JButton desc;
public JButton sair;
public Cliente() {
titulo = new JLabel("Menu Cliente");
ordens = new JButton ("Ordens");
listaordens = new JButton("Lista Ordens");
stats = new JButton ("Estatísticas");
desc = new JButton ("Peças Descarregadas");
sair = new JButton ("Sair");
setLayout(null);
Dimension size1 = titulo.getPreferredSize();
Dimension size2 = ordens.getPreferredSize();
Dimension size3 = listaordens.getPreferredSize();
Dimension size4 = stats.getPreferredSize();
Dimension size5 = desc.getPreferredSize();
Dimension size6 = sair.getPreferredSize();
titulo.setBounds(100, 50, size1.width, size1.height);
ordens.setBounds(100, 100, size2.width, size2.height);
listaordens.setBounds(100, 150, size3.width, size3.height);
stats.setBounds(100, 200, size4.width, size4.height);
desc.setBounds(100, 250, size5.width, size5.height);
sair.setBounds(100, 300, size6.width, size6.height);
sair.addActionListener(this);
add(titulo);
add(ordens);
add(listaordens);
add(stats);
add(desc);
add(sair);
setSize(500, 500);
setTitle("Teste");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public void actionPerformed(ActionEvent out){
System.exit(0);
}
}
第二个菜单与此类似,只是按钮名称不同。现在的想法是通过单击“Ordens”按钮来显示第二个菜单。抱歉,这似乎很无聊,但我昨天才开始使用 Java GUI。谢谢大家。
【问题讨论】:
-
你应该重新考虑你的设计。通常,每个应用程序只需要一个 JFrame。在java中有更好的方法来切换屏幕。
标签: java swing user-interface