gpt4 book ai didi

java swing addactionlistener JButton

转载 作者:行者123 更新时间:2023-11-29 05:31:01 25 4
gpt4 key购买 nike

我有一个 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 的 Customer Name集合如上所示。当按下添加作业时 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

如果您建议/推荐任何示例、方法或任何东西,我将不胜感激。 提前致谢, 塞尔维亚语

最佳答案

  • 您需要一个 JTextArea 来显示来自 Job 的信息
  • 此外,我建议重写 Job 类中的 toString() 方法。有点像

    public String toString() {
    return "Job No: " + jobNum +
    "\nCustomer: " + customer +
    "\nCredit Limit: " + creditLimit
    ....
    }
  • 然后在 actionPerformed 中,您所要做的就是检查文本字段中的值,然后从 map 中获取值并将其显示在文本区域中。

    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");
    }
    }

运行这个例子。明白我的意思。只需输入 map 上的其中一个名称,然后按下按钮

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;
}
}

关于java swing addactionlistener JButton,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21080451/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com