我正在开发一个java应用程序,它有5个gui窗口,其中一个是问候语或主窗口,我已经完成了所有逻辑部分的工作,我完成了99.99%,唯一剩下的就是我怎么能以这种方式编码,当我点击一个按钮时,让我说一个主窗口上的按钮,它会引导我到第二个窗口,主窗口将自动关闭,我怎么能让它成真吗?
任何帮助将不胜感激。
修改
这是代码先生
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.util.*;
class Nc extends JFrame
{
private JLabel label;
private JLabel label1;
private JLabel label2;
private JLabel label3;
private JLabel label4;
private JButton b;
private JButton o;
private JButton h;
private JButton d;
private Bn ob;
private Hd oh;
private Oc oo;
private Dc od;
public Nc()
{
setTitle("Number Converter");
setSize(200 , 300);
setResizable(false);
setLocation(500 , 200);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLayout(new FlowLayout(FlowLayout.CENTER, 25, 10));
label = new JLabel("Number Converter");
label1 = new JLabel("Java Application");
label2 = new JLabel("Programmed by: Hassan Zia");
label3 = new JLabel("Copyright 2014");
label4 = new JLabel("Click a button");
b = new JButton("Binary");
o = new JButton("Octal");
h = new JButton("Hexa Decimal");
d = new JButton("Decimal");
add(label);
add(label1);
add(label2);
add(label3);
add(label4);
add(b); // Binary Button
add(o); // Octal Button
add(h); // Hexa Decimal Button
add(d); // Decimal Button
b.addActionListener(new action());
o.addActionListener(new action());
h.addActionListener(new action());
d.addActionListener(new action());
setVisible(true);
}
void bnc()
{
ob = new Bn();
}
void hdc()
{
oh = new Hd();
}
void occ()
{
oo = new Oc();
}
void dcc()
{
od = new Dc();
}
private class action implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
if (e.getSource() == b)
{
bnc();
}
if (e.getSource() == h)
{
hdc();
}
if (e.getSource() == o)
{
occ();
}
if (e.getSource() == d)
{
dcc();
}
}
}
public static void main (String args[])
{
Nc obj = new Nc();
}
答案 0 :(得分:4)
如果这是一个Swing应用程序(您仍然没有告诉我们),那么您可以解决您的直接问题,方法是放入一个JButton的ActionListener代码来调用{ {1}}在当前窗口中,如果您再次使用它,或者setVisible(false)
,如果您再也不能使用它,然后在您希望的下一个窗口对象上调用dispose()
显示。这可以很简单:
setVisible(true)
但仍有一些悬而未决的问题。
修改强>
好的,我已经看到你添加了Swing和AWT标签,谢谢,但我仍然认为我的答案还不完整,因为问题仍然不完整。
修改2
根据您的代码,我会支持我的原始建议,并使用CardLayout来交换JPanel" views"。例如,运行:
myButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
ThisGuiClass.this.setVisible(false);
newGUI.setVisible(true);
}
});
当然,计算JPanels会涉及更多,包含嵌套的JPanels,每个都有自己的布局管理器,JTextFields,JButton以及实现其功能所需的任何其他内容。
编辑3
实际上,在考虑这个问题时,即使这样也是过度的。你最好使用一个带有两个文本字段的JPanel,一个用于数字输入,一个用于结果显示,底部有一堆按钮。然后显示将根据按下哪个按钮(转换类型)而改变。 KISS原则。