0

JFrameファイルから初期母集団の一部を取得する画面 ( ) があります。ただし、ファイルが何らかの理由で存在しないか、誤って入力されている場合、多くのフィールドが編集不可としてブロックされ、ユーザーは設定ボタンをクリックすることを余儀なくされ、別のJFrame画面が生成されます。その後、ユーザーがファイルを正しく更新した場合、元の画面に新しいファイル データを再入力したいのですが、これは可能ですか?

そのため、Java クラスの「設定」を呼び出す設定ボタンのアクション リスナーがあります。「設定」には、データベース/ファイルの更新を有効にする「完了」ボタンがあり、更新が成功し、元のフレームのブロックが解除されます

    btnSettings.setText("Settings");
    btnSettings.setFont(font4);
    btnSettings.setBounds(new Rectangle(15, 515, 140, 40));
    btnSettings.setToolTipText("Default Settings");
    btnSettings.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent evt) {
            settingsPerformed();
        }
    }) ;

private void settingsPerformed() {

    JFrame settings = new Settings();
    settings.setVisible(true);
}

そして、設定用の新しいクラス

public class Settings extends JFrame implements ActionListener {

private.....         
public Settings() {

    this.getContentPane().setLayout(null);
    this.setSize(new Dimension(450, 340));
    this.setTitle("Default Settings");

    this.setBackground(new Color(255, 247, 214));
    this.setResizable(true);
    this.setFont(font1);

    pnlSettingsData.setBounds(new Rectangle(10, 10, 405, 285));
    pnlSettingsData.setBorder(BorderFactory.createLineBorder(Color.blue, 1));
    pnlSettingsData.setName("Settings");
    pnlSettingsData.setLayout(null);  


    btnDone.setText("Done");
    btnDone.setFont(font3);
    btnDone.setBounds(new Rectangle(100, 250, 73, 20));
    btnDone.setToolTipText("Click when ready for updating");
    btnDone.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent evt) {
                    doneActionPerformed(evt);
                    setVisible(false) ;
            }
    });


    this.getContentPane().add(pnlSettingsData, null);            
    setDefaultCloseOperation(HIDE_ON_CLOSE);
    setLocation(150,200);
    //pack();
    setVisible(true);
}


private void doneActionPerformed(ActionEvent evt) { 

    // include here the data base updates      
}   

public void actionPerformed(ActionEvent e) {
}

}

4

1 に答える 1

2

あなたは出来る ...

  1. モーダル JDialog を使用してユーザーから情報を収集し、それを閉じると、現在のフレームからファイルをリロードできます。
  2. 最初のフレームがアクションを登録できるようにします。2 番目のフレームをリッスンします。2 番目のフレームが呼び出されたとき (おそらくユーザーが同意ボタンをクリックしたとき)、ファイルをリロードして UI を更新します。
于 2013-03-08T22:46:46.647 に答える