ArrayList,JList,DefaultListModel,添加元素,显示它们等

时间:2017-06-05 11:11:38

标签: java list arraylist jlist defaultlistmodel

如何将JTextArea的输出更改为JList? 原因是:删除元素,对它们进行排序和编辑它们更容易。 如果我只是将JTextArea更改为JList,则会遇到在输出区域中打印ArrayList的问题。

这是我的代码(我删除了某些(可能不相关的)部分):

package personFiles;

import java.awt.*;
import java.util.List;
import java.awt.event.*;
import java.util.ArrayList;

import javax.swing.*;
import javax.swing.event.*;


@SuppressWarnings("serial")
public class Osoblje extends JFrame {
    private JTextArea outputJTA = new JTextArea("");
    private JScrollPane outputJTAScrollPane = new JScrollPane(outputJTA);

    List<Person> personList = new ArrayList<>();

    public Osoblje(String title) { 
        // Frame-Initialisierung
        super(title);
        setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
        int frameWidth = 310; 
        int frameHeight = 269;
        setSize(frameWidth, frameHeight);
        Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
        int x = (d.width - getSize().width) / 2;
        int y = (d.height - getSize().height) / 2;
        setLocation(x, y);
        setResizable(false);
        Container cp = getContentPane();
        cp.setLayout(null);
        // Anfang Komponenten

        outputJTAScrollPane.setBounds(8, 8, 129, 217);
        cp.add(outputJTAScrollPane);

        setVisible(true);
    } // end of public Osoblje

    // Anfang Methoden

    public static void main(String[] args) {
        new Osoblje("Osoblje");
    } // end of main

    public void newPersonJB_ActionPerformed(ActionEvent evt) {
        personList.add(new Person(idJTF.getText(), nameJTF.getText(), surnameJTF.getText(), ageJTF.getText(), genderJTF.getText())); //create new person
    } // end of newPersonJB_ActionPerformed

    public void pokaziJB_ActionPerformed(ActionEvent evt) {
        outputJTA.setText(personList + "\n"); //display personList
    } // end of pokaziJB_ActionPerformed

}

2 个答案:

答案 0 :(得分:0)

尝试从List<Person>切换到java.util.List<Person>

或者更好,修复您的导入。

答案 1 :(得分:0)

您使用java.awt.List代替java.util.List

解决方案:

java.util.List<Main> m = new ArrayList<Main>();

或者执行更严格的导入,例如:

import java.awt.Dimension;
import java.awt.Toolkit;
import java.awt.Container;

而不是:

import java.awt.*;