繁体   English   中英

如何将来自 2 个不同 JTextField 的 2 个元素添加到一个 JList

[英]How to add 2 elements from 2 different JTextField to one JList

如何将来自不同 JTextField 的元素添加到一个列表中。 我试图将元素放在字符串中并将它们添加到列表中,但这不起作用。

您必须将字符串添加到备份JList的列表模型中。 这是一个简短的示例代码,每当您在文本字段中按 ENTER 时,它都会将当前JTextField的值附加到列表中:

import javax.swing.DefaultListModel;
import javax.swing.JFrame;
import javax.swing.JList;
import javax.swing.JScrollPane;
import javax.swing.JTextField;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.awt.BorderLayout;

public final class Example extends JFrame {
   public Example() {
      setLayout(new BorderLayout());

      // Create a list model and populate it with two initial items.
      final DefaultListModel<String> model = new DefaultListModel<String>();
      model.addElement("Initial 1");
      model.addElement("Initial 2");

      // Create a JList (wrapped into a JScrollPane) from the model
      add(new JScrollPane(new JList<String>(model)), BorderLayout.CENTER);

      // Create a JTextField at the top of the frame.
      // Whenever you click ENTER in that field, the current string gets
      // appended to the list model and will thus show up in the JList.
      final JTextField field1 = new JTextField("Field 1");
      add(field1, BorderLayout.NORTH);
      field1.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
               System.out.println("Append " + field1.getText());
               model.addElement(field1.getText());
            }
         });

      // Create a JTextField at the bottom of the frame.
      // Whenever you click ENTER in that field, the current string gets
      // appended to the list model and will thus show up in the JList.
      final JTextField field2 = new JTextField("Field 2");
      add(field2, BorderLayout.SOUTH);
      field2.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
               System.out.println("Append " + field2.getText());
               model.addElement(field2.getText());
            }
         });
   }
   public static void main(String[] args) {
      final JFrame frame = new Example();
      frame.addWindowListener(new WindowAdapter() {
            public void windowClosing(WindowEvent e) { System.exit(1); }
         });
      frame.pack();
      frame.setVisible(true);
   }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM