簡體   English   中英

從JTextField中獲取並添加到JList

[英]Take from JTextField and add to JList

我遇到了一個問題,我需要從JTextField中獲取文本並將其添加到JList中,方法是在鍵盤上按Enter鍵,並且可以通過按住Alt鍵並單擊列表從列表中刪除選定的項目。

我現在有什么

import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.FlowLayout;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.awt.event.MouseAdapter;

import java.awt.event.MouseEvent;

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


public class Main extends JFrame{
   /**
     * 
     */
    private static final long serialVersionUID = -4006813674691791252L;

    private DefaultListModel listM;
    private JList list;
    private JTextField jText;

  public static void main(String[] args) {
      new Main();
  }

  Main() {

      super("From JText to Jlist");
      setDefaultCloseOperation(EXIT_ON_CLOSE);
      setLayout(new BorderLayout());
      pack();
      setLocationRelativeTo(null);
      setVisible(true);

      listM = new DefaultListModel();
      list = new JList(listM);
      jText = new JTextField();

      list.addMouseListener( new MouseAdapter() {

          @Override
          public void mouseClicked(MouseEvent e) {

            if (e.isAltDown() && list.getSelectedIndex() >= 0){
                        listM.remove(list.getSelectedIndex());
                    }
                }
         });

      jText.addKeyListener( new KeyAdapter() {

                        @Override
                        public void keyPressed(KeyEvent e){
                            if (e.getKeyCode() == KeyEvent.VK_ENTER) {
                                final String str = jText.getText();
                                listM.addElement(str);
                                jText.setText("");
                                    }
                        }
        });


        JPanel inputPanel = new JPanel();
        inputPanel.setLayout(new BorderLayout());
        inputPanel.add(new JScrollPane(list));
        inputPanel.add(jText, BorderLayout.PAGE_END);

        }       
}

它僅顯示空白框。

我將不勝感激。

您從未將任何組件添加到JFrame。 這就是為什么它是空的。

這樣工作。

 JPanel inputPanel = new JPanel();
 inputPanel.setLayout(new BorderLayout());
 inputPanel.add(new JScrollPane(list));
 inputPanel.add(jText, BorderLayout.PAGE_END);
 getContentPane().add(inputPanel);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM