我需要一个带有jlist和两个按钮的盒子。一个按钮将关闭该框,另一个按钮将打开一个文本框,用户可以填写该文本框以向jlist添加元素。
到目前为止我所拥有的:
import java.awt.FlowLayout;
import javax.swing.*;
public class Main {
public static void main(String[] args)
{
JFrame.setDefaultLookAndFeelDecorated(true);
JFrame box = new JFrame("Course List");
box.setSize(600,300);
box.setLayout(new FlowLayout());
box.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
box.setVisible(true);
DefaultListModel listModel = new DefaultListModel();
JList list = new JList(listModel);
list.setSelectedIndex(1);
box.add(new JScrollPane(list));
box.pack();
JButton button1 = new JButton("Add Course");
box.add(button1);
HandlerClass handler = new HandlerClass();
button1.addActionListener(handler);
}
}
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.DefaultListModel;
import javax.swing.JOptionPane;
class HandlerClass implements ActionListener{
public void actionPerformed(ActionEvent e) {
String input;
input = JOptionPane.showInputDialog(null, "Enter in course name");
}
}
我的问题是我不知道如何传递“ListModel”,或者甚至可能,以便我可以执行类似listModel.addElement(输入)的操作,并将文本中的文本添加到jlist中。
编辑:
所以我不知道这是否应该是这样做的,但我只是在main中创建了一个无限循环,在handlerclass中创建了一些setter和getter。它有效,但我不是正确的做法。
答案 0 :(得分:0)
一般来说,不要(通过列表模型),而是使用JDialog
或JOptionPane
从用户收集所需的详细信息,当它们关闭时,检索您需要的详细信息从他们。
请查看How to make dialogs了解详情