首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >java JButton

java JButton
EN

Stack Overflow用户
提问于 2014-01-12 21:23:01
回答 1查看 238关注 0票数 1

我有一个JPanel,其中存在一个JTextFiled。我想在这个JTextFiled中显示属于hashmap集合的信息。

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

我在另一个类(分支)中的方法具有获取所有作业的方法:

代码语言:javascript
复制
    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的客户名称。当按下Add时,属于hashmap集合的信息将在JButton中列出。

数字如下;

我试着把actionPerformed(ActionEvent e)的方法写下来。

由于我是Java方面的新手,所以我很难写出这个方法。

代码语言:javascript
复制
 private class AddJobButtonHandler implements ActionListener{

          public void actionPerformed(ActionEvent e) { }
      } 

编辑:如果有像下面这样的菜单,通过选择“添加作业”菜单项,代码将如何更改?

如果你能提出/推荐任何例子、方法或任何东西,我将不胜感激。谢谢你,塞尔维亚人

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-01-12 21:37:24

  • 您需要一个JTextArea来显示来自Job的信息
  • 另外,我建议的是重写Job类中的Job方法。有点像 公共字符串toString() {返回“作业编号:”+ jobNum +“\n customer:”+customer+“+customer+”\n信用限制:“+ creditLimit .}
  • 然后在actionPerformed中,您所要做的就是检查文本字段中的值,然后从地图中获取值并在文本区域中显示它。 jta.append(String.valueOf(map.get(customer)));actionPerformed(ActionEvent e) { String = textField.getText();if (map.containsKey( customer )) {map.containsKey jta.append(\n*n\n“);}

运行此示例。明白我的意思。只需输入地图中的一个名称,然后按下按钮。

代码语言:javascript
复制
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;
    }
}
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21080451

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档