如何将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
}
答案 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.*;