2012-05-30 69 views
0

我有一個用戶填寫JFrame的表單,然後將收集的數據寫入不同類中的JTable。使JFrame像對話框一樣工作

我想配置它,當用戶選擇「提交」,JFrame將關閉,但不關閉程序。我需要做什麼來實現這個目標?

提交按鈕是如下的代碼如下:

JButton bMark = new JButton("Submit"); 
    bMark.addActionListener(new ActionListener() { 
     public void actionPerformed(ActionEvent e) { 
      String start = tbStart.getText(); 
      String end = tbEnd.getText(); 

      String[] marking = {start, end, active, body, dysk, trem, brady}; 

      //This is just for me to ensure the collected data is correct 
      System.out.println(marking[0] + " " +marking[1] + " " +marking[2] + " " + 
        marking[3] + " " + marking[4] + " " + marking[5] + " " + marking[6]); 

      //This is is the class the form data is being sent to 
      markTable.main(marking); 

      //This is where I would like the close the current window 

     } 
    }); 
    bMark.setBounds(308, 191, 86, 23); 

類名是createMark和方法是公共createMark

由於任何人誰答覆,

賈裏德。

+3

*「讓JFrame像對話框一樣行事」*你不能從母豬的耳朵上製作絲質錢包。 **使用'JDialog'!** –

回答

2

您需要設置上的default close operation JFrame等:

frame.setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE); 

這將處理用戶使用標題欄關閉窗口或點擊Alt + F4之類的情況。

接下來,當按下提交按鈕時,只需撥打setVisible(false)即可。

+0

謝謝,完美的作品。我覺得愚蠢的沒有想到它... – jazibobs

+2

@Jazibobs:爲什麼你不是簡單地使用JDialog?你從未解決過這個問題。這使* no *意義。你是否理解JDialog可以像任何JFrame一樣擁有複雜的GUI,再加上它在操作系統如何處理它方面還有其他優勢(因爲它由父窗口「擁有」)? –

4

//這是我想關閉當前窗口

有這些方式

  • JFrame#setVisible(false),但不能終止當前JVM,這會一直存在,直到重新啓動PC ,

  • JFrame#dispose()終止當前JVM,

  • System#exit(int);終止當前JVM,

更好地將JFrame#setDefaultCloseOperation

不suplly JOptionPane,也許會更好地利用直接