2014-01-12 131 views
1

我有一個JPanel其中一個JTextFiled存在。我想在此JTextFiled中顯示屬於哈希圖集合的信息。java swing addactionlistener JButton

我的HashMap的集合是:HashMap<String,Job>jobs = new HashMap < String,Job>();

我在其他類(分公司)方法用於獲取方法的所有工作:

public String getAllJobs() 
{  
     String result_jobs; 
     result_jobs = " "; 

     Collection<Job> jobValues = jobs.values(); 
     Iterator<Job> Jobiter = jobValues.iterator(); 

     while(Jobiter .hasNext()) 
     { 
     Job jo = Jobiter.next(); 
     result_jobs += jo.toString()+ '\n' ; 
     } 

     return result_jobs; 

    } 

在這種JTextFiled,應該進入的鍵值hashmap指示在上面顯示的HashMap集合中聲明爲String的Customer Name。當按下Add Job JButton時,屬於hashmap集合的信息列在JTextFiled中。

數字如下;

enter image description here

enter image description here

我試圖寫下來的actionPerformed(ActionEvent e)的方法。

由於我在Java中很新,所以我很難寫下這個方法。

private class AddJobButtonHandler implements ActionListener{ 

      public void actionPerformed(ActionEvent e) { } 
     } 

編輯: 如果有類似下面並通過選擇「添加任務」菜單項的菜單; 代碼將如何更改?

enter image description here

,如果你建議/推薦任何例子,methodoligies或任何我將不勝感激。 由於提前, 塞爾維亞

回答

3
  • 你需要JTextAreaJob
  • 還什麼我會推薦是覆蓋在Job類的toString()方法顯示的信息。像

    public String toString() { 
        return "Job No: " + jobNum + 
          "\nCustomer: " + customer + 
          "\nCredit Limit: " + creditLimit 
        .... 
    } 
    
  • 東西然後在actionPerformed所有你需要做的,就是檢查值在文本字段,那麼您可以通過地圖的價值,並在文本區域顯示。

    public void actionPerformed(ActionEvent e) { 
        String customer = textField.getText(); 
        if (map.containsKey(customer)) { 
         jta.append(String.valueOf(map.get(customer))); 
         jta.append("\n***********************\n\n"); 
        } 
    } 
    

運行這個例子。看看我的意思。只要輸入從地圖上的一個名稱,然後按下按鈕

enter image description here

import java.awt.BorderLayout; 
import java.awt.event.ActionEvent; 
import java.awt.event.ActionListener; 
import java.util.HashMap; 
import java.util.Map; 
import javax.swing.JButton; 
import javax.swing.JFrame; 
import javax.swing.JPanel; 
import javax.swing.JTextArea; 
import javax.swing.JTextField; 
import javax.swing.SwingUtilities; 

public class TestMap { 

    private JTextArea jta = new JTextArea(15, 30); 
    private JTextField jtf = new JTextField(30); 
    private JButton button = new JButton("Show Job"); 
    private Map<String, Job> map; 

    public TestMap() { 
     map = getMap(); 

     JPanel panel = new JPanel(new BorderLayout()); 
     panel.add(jta, BorderLayout.CENTER); 
     panel.add(jtf, BorderLayout.NORTH); 
     panel.add(button, BorderLayout.SOUTH); 

     button.addActionListener(new ActionListener() { 
      public void actionPerformed(ActionEvent e) { 
       if (!"".equals(jtf.getText())) { 
        String customer = jtf.getText(); 
        if (map.containsKey(customer)) { 
         jta.append(String.valueOf(map.get(customer))); 
         jta.append("\n***********************\n\n"); 
        } 
        jtf.setText(""); 
       } 
      } 
     }); 

     JFrame frame = new JFrame(); 
     frame.add(panel); 
     frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     frame.setLocationRelativeTo(null); 
     frame.pack(); 
     frame.setVisible(true); 
    } 

    private Map<String, Job> getMap() { 
     Map<String, Job> map = new HashMap<>(); 
     map.put("Paul", new Job(100, "Paul", 10000.00)); 
     map.put("Jim", new Job(101, "Jim", 20000.00)); 
     map.put("John", new Job(102, "John", 30000.00)); 
     map.put("Sean", new Job(103, "Sean", 40000.00)); 
     map.put("Shane", new Job(104, "Shane", 50000.00)); 
     map.put("Mike", new Job(105, "Mike", 60000.00)); 

     return map; 
    } 

    public static void main(String[] args) { 
     SwingUtilities.invokeLater(new Runnable() { 
      public void run() { 
       new TestMap(); 
      } 
     }); 
    } 
} 

class Job { 

    int jobNo; 
    String customer; 
    double creditLimit; 

    public Job(int jobNo, String customer, double creditLimit) { 
     this.jobNo = jobNo; 
     this.customer = customer; 
     this.creditLimit = creditLimit; 
    } 

    public String toString() { 
     return "Job No: " + jobNo 
       + "\nCustomer: " + customer 
       + "\nCredit Limit: " + creditLimit; 
    } 
} 
+0

徹底解決這個問題,非常感謝。 – serb

+0

我在想什麼; – serb

+0

那是什麼?...... –