java-SWING-this.dispose之后保存数据
所以基本上我用Java制作Swing应用程序,我有一个列表,用户可以在其中通过在文本字段和按钮中键入来添加项(当用户单击该按钮时,窗口将被释放并打开新窗口)。在新窗口中,我只有一个按钮,它会把我拉回到第一个窗口,但插入列表的数据会被删除。有没有办法避免这种情况(我知道有,但如果有人能向我解释这会有多好:) 提前谢谢 您可以使用相同的空间来显示多个视图 提示:单击任何java-SWING-this.dispose之后保存数据,java,swing,user-interface,Java,Swing,User Interface,所以基本上我用Java制作Swing应用程序,我有一个列表,用户可以在其中通过在文本字段和按钮中键入来添加项(当用户单击该按钮时,窗口将被释放并打开新窗口)。在新窗口中,我只有一个按钮,它会把我拉回到第一个窗口,但插入列表的数据会被删除。有没有办法避免这种情况(我知道有,但如果有人能向我解释这会有多好:) 提前谢谢 您可以使用相同的空间来显示多个视图 提示:单击任何JButton时,只需在多个JPanel之间切换即可 阅读更多关于 如果你想坚持目前的方法,那就试试 如果需要,还可以重写wind
JButton
时,只需在多个JPanel
之间切换即可
阅读更多关于
如果你想坚持目前的方法,那就试试 如果需要,还可以重写
windowClosing()
方法
您可以覆盖JFrame
的setVisible()
方法,并检查JFrame
的可见性
看
疑问:为什么要同时使用扩展
JFrame
类和在类中添加JFrame
本身的实例?谢谢,我知道我可以不使用“扩展”,但我喜欢它的方式。但我喜欢它的方式。
-这是错误的,令人困惑。“FLIPJavaJava阅读上面的疑义部分。您也可以考虑使用<代码> jCalue<代码>或代码> joptPANGE<代码>来收集具体的细节,这仍然要求您从视图中返回结果…作为建议<代码>扩展JFrase和<代码>私有JFrror框架;code>提出了一个问题,即哪个框架是实际可见的,并且实际执行工作。通常,不需要从JFrame
扩展,因为您没有向类添加任何附加功能
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class first extends JFrame {
public static final long serialVersionUID = 1L;
private JFrame frame;
private JButton button, button2;
private JComboBox box;
private JScrollPane scroll;
private DefaultListModel defListModel = new DefaultListModel();
private JList list;
private JPanel panel;
private JTextField field;
public First() {
try {
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
} catch(Exception e) {
e.printStackTrace();
}
frame = new JFrame("Hello Eclipse");
panel = new JPanel();
field = new JTextField("", 25);
panel.add(field);
button = new JButton("Click to add to the list");
button.setFocusPainted(false);
button.setToolTipText("Hovered Over ME");
button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if(e.getSource() == button){
String text = field.getText();
defListModel.addElement(text);
JOptionPane.showMessageDialog(frame, "Added to the list", "Done", JOptionPane.INFORMATION_MESSAGE);
}
}
});
panel.add(button);
button2 = new JButton("New Window");
button2.setFocusPainted(false);
button2.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if(e.getSource() == button2){
NewWindow window = new NewWindow();
frame.setVisible(false);
}
}
});
panel.add(button2);
String[] movies = {};
for(String movie : movies){
defListModel.addElement(movie);
}
list = new JList(defListModel);
list.setFixedCellWidth(150);
list.setFixedCellHeight(30);
scroll = new JScrollPane(list, JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED, JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
panel.add(scroll);
frame.add(panel);
frame.setSize(400, 400);
frame.setVisible(true);
frame.setResizable(false);
frame.setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE);
frame.setLocationRelativeTo(null);
}
public static void main(String[] args) {
new First();
}
}
frame.addWindowListener(new WindowAdapter() {
@Override
public void windowDeactivated(WindowEvent arg0) {
System.out.println("windowDeactivated");
// save the data
}
});