Java:Jswing:Jlist
当我向Jlist输入名称时,名称会输出到列表的下半部分,如何将名称设置到窗口顶部Java:Jswing:Jlist,java,swing,jlist,Java,Swing,Jlist,当我向Jlist输入名称时,名称会输出到列表的下半部分,如何将名称设置到窗口顶部 package Gui; //import java.awt.BorderLayout; import java.awt.BorderLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.*; public class GUI implements ActionLi
package Gui;
//import java.awt.BorderLayout;
import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
public class GUI implements ActionListener {
JButton button;
JTextField field;
JList list;
JTextField name1;
DefaultListModel listModel;
String name;
public GUI(){
listModel = new DefaultListModel();
listModel.addElement(null);
listModel.setSize(1);
JFrame frame = new JFrame();
JPanel panel = new JPanel();
field = new JTextField("Enter Name", 10);
button = new JButton("Click");
list = new JList(listModel);
list.setBorder(BorderFactory.createEmptyBorder(120, 20, 20, 120));
JScrollPane listScrollPane = new JScrollPane(list);
panel.add(listScrollPane);
listScrollPane.setWheelScrollingEnabled(true);
panel.add(button);
panel.add(field);
frame.getContentPane().add(panel);
frame.pack();
frame.setVisible(true);
button.addActionListener(this);
}
public void actionPerformed(ActionEvent arg0) {
if(arg0.getSource() == button)
name = field.getText();
listModel.addElement(name);
}
}
您可以简单地使用
add(0,object)
方法
listModel.addElement(名称)
,而不是listModel.add(0,名称)
将名称添加到列表顶部
对于JList的大小,不应使用此边框,而应为JSCrollPane选择首选大小:
package Gui;
...
import java.awt.Dimension;
public class GUI implements ActionListener {
...
public GUI(){
...
list = new JList(listModel);
JScrollPane listScrollPane = new JScrollPane(list);
listScrollPane.setPreferredSize(new Dimension(100, 240));
panel.add(listScrollPane);
...
}
public void actionPerformed(ActionEvent arg0) {
if(arg0.getSource() == button)
name = field.getText();
listModel.add(0, name);
}
}
资源:
add(0,object)
方法
listModel.addElement(名称)
,而不是listModel.add(0,名称)
将名称添加到列表顶部
对于JList的大小,不应使用此边框,而应为JSCrollPane选择首选大小:
package Gui;
...
import java.awt.Dimension;
public class GUI implements ActionListener {
...
public GUI(){
...
list = new JList(listModel);
JScrollPane listScrollPane = new JScrollPane(list);
listScrollPane.setPreferredSize(new Dimension(100, 240));
panel.add(listScrollPane);
...
}
public void actionPerformed(ActionEvent arg0) {
if(arg0.getSource() == button)
name = field.getText();
listModel.add(0, name);
}
}
资源:
列表。setboorder()
?它使它变得更好了,但仍然没有达到预期效果top@Ethan,元素不是在列表的顶部吗?或者你是说别的什么?不,比如当我运行这个程序时,我输入的名字会被发送到窗口的最底部好吧,这样会更好,但是当你运行这个程序时,当你输入一个名字时,你的名字会显示在哪里?我的正在运行。您是否删除了列表。setboorder()
?