[英]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.