按钮混淆传递listModel

时间:2014-04-12 22:00:38

标签: java swing button parameters handler

我需要一个带有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。它有效,但我不是正确的做法。

1 个答案:

答案 0 :(得分:0)

一般来说,不要(通过列表模型),而是使用JDialogJOptionPane从用户收集所需的详细信息,当它们关闭时,检索您需要的详细信息从他们。

请查看How to make dialogs了解详情