2016-11-14 67 views
-1

我想製作一種電話簿,而且我的Java界面的技能已經生鏽了,因爲我還沒有多年製作一個。所以我們假設現在我的窗口上有一個按鈕。當我點擊它時,我希望它彈出一個帶有三個部分的對話窗口,用於輸入文本(名字,姓氏和電話號碼),然後當用戶單擊底部的確定按鈕時,它會將這些添加到列表中名字和phonenumbers。我需要什麼代碼才能使按鈕執行此操作?我已經知道如何製作按鈕,所以我主要想知道它所執行的動作以及如何製作我需要的對話窗口。Java GUI按鈕,對話框窗口和輸入

回答

0

好吧,例如你的按鈕叫做button1。你將不得不添加一個ActionListner到那個按鈕和一個ActionPerformed(這將封裝點擊按鈕時發生的事情)。當點擊按鈕時,你可以在面板中創建一個新的面板添加文本框。然後你可以添加另一個按鈕繼續進行操作,該操作將使ActionListner/ActionPerfromed duet將輸入到文本框中的字符串存儲到已定義的String中。示例代碼如下:

button1.addActionListener(new ActionListener(){ 
    public void actionPerformed(ActionEvent a) { 
     JPanel panel1 = new JPanel(); 
     JTextField textbox = new JTextField(50); 
     JTextField textbox1 = new JTextField(50); 
     JTextField textbox3 = new JTextField(50); 

     label.setText("Please enter Something below on the textbox: "); 
     panel1.add(label); 
     panel1.add(textbox); 
     panel1.add(textbox1); 
     panel1.add(textbox2); 

     JButton button3 = new JButton(); 
     button3.setText("CLICK TO PROCEED"); 
     panel1.add(button3, BorderLayout.NORTH); 

     frame.setContentPane(panel1); 
     frame.invalidate(); 
     frame.validate(); 

     button3.addActionListener(new ActionListener(){ 
     public void actionPerformed(ActionEvent ae){ 
      String s1 = textbox.getText(); 
      String s2 = textbox1.getText(); 
      String s3 = textbox2.getText();}} 

希望這有助於。但請注意,在actionPerformed下定義的變量是本地的。 s1,s2,s3不能在戶外使用。最好在ActionListner/ActionPerformed方法之外創建私有靜態變量。

+0

所以你說我放在對話框中的變量不會被髮送回主方法? – user276019

1

以及如何製作我需要的對話窗口。

你讓一個JDialog窗口,你做一個JFrame窗口以同樣的方式,somethink像:

JPanel panel = new JPanel(); 
panel.add(someComponent); 
panel.add(anotherComponent); 
JDialog dialgo = new JDialog(); 
dialog.add(panel); 
dialog.pack(); 
dialog.setVisible(true); 

通常這個代碼將包含在一個單獨的類,你只要在創建類的實例你的ActionListener。

+0

謝謝你,這是我正在尋找,但現在我需要弄清楚如何讓它返回文本框中的值。不應該太難。 – user276019