我有一个JPanel,其中存在一个JTextFiled。我想在这个JTextFiled中显示属于hashmap集合的信息。
我的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的客户名称。当按下Add时,属于hashmap集合的信息将在JButton中列出。
数字如下;


我试着把actionPerformed(ActionEvent e)的方法写下来。
由于我是Java方面的新手,所以我很难写出这个方法。
private class AddJobButtonHandler implements ActionListener{
public void actionPerformed(ActionEvent e) { }
} 编辑:如果有像下面这样的菜单,通过选择“添加作业”菜单项,代码将如何更改?

如果你能提出/推荐任何例子、方法或任何东西,我将不胜感激。谢谢你,塞尔维亚人
发布于 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“);}运行此示例。明白我的意思。只需输入地图中的一个名称,然后按下按钮。

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;
}
}https://stackoverflow.com/questions/21080451
复制相似问题