[英]Opening a new JFrame from a current JFrame
我正在創建一個Java應用程序,我將有一個按鈕。 當按下該按鈕時,我想要一個包含username
, password
和其他各種字段的表單。 在該表單中有“ Save
按鈕,按下該按鈕會將所有內容保存到文件並切換回第一個JFrame。
這就是我目前的做法。 這是第一個JFrame的按鈕代碼:
public class FirstJFrame extends JFrame {
private void newJFrameActionPerformed(java.awt.event.ActionEvent evt) {
SecondJFrame pan = new SecondJFrame();
this.setVisible(false);
pan.setVisible(true);
}
}
這是第二個JFrame上“ Save
按鈕的代碼:
public class SecondJFrame extends javax.swing.JFrame {
private void goBackActionPerformed(java.awt.event.ActionEvent evt) {
SecondJFrame pan = new SecondJFrame();
this.setVisible(false);
pan.setVisible(true);
}
}
這對我來說效果不錯,但我覺得我根本沒有這樣做,我可能會創建一個內存泄漏,因為我每次都在創建一個新對象。 我正在做的是正確的還是有更好的方法?
這不是最好的方式!
如果要從用戶輸入中收集一些數據,可以在輸入對話框中使用JOptionPane。 這是一個可能顯示方式的代碼示例:
import javax.swing.*;
import java.awt.event.*;
public class ShowInputDialog{
public static void main(String[] args){
JFrame frame = new JFrame("Input Dialog Box Frame");
JButton button = new JButton("Show Input Dialog Box");
button.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent ae){
JTextField xField = new JTextField(5);
JTextField yField = new JTextField(5);
JPanel myPanel = new JPanel();
myPanel.add(new JLabel("x:"));
myPanel.add(xField);
myPanel.add(Box.createHorizontalStrut(15)); // a spacer
myPanel.add(new JLabel("y:"));
myPanel.add(yField);
int result = JOptionPane.showConfirmDialog(null, myPanel,
"Please Enter X and Y Values", JOptionPane.OK_CANCEL_OPTION);
if (result == JOptionPane.OK_OPTION) {
System.out.println("x value: " + xField.getText());
System.out.println("y value: " + yField.getText());
}
}
});
JPanel panel = new JPanel();
panel.add(button);
frame.add(panel);
frame.setSize(400, 400);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.