2010-10-01 34 views
0

當我輸入一個名稱的jList,名字被輸出到列表中的下段,我如何使其在名稱設置爲窗口的頂部的Java:Jswing: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 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); 
    } 
} 
+0

等等...你想改變t他的應用程序的標題欄? – tster 2010-10-01 06:18:04

+0

不,當我輸入名稱時,我想要輸出到窗口左上角的名稱,但由於某種原因它被髮送到底部 – Ethan 2010-10-01 06:46:18

回答

3

您可以簡單地使用add(0, object)方法。

而不是listModel.addElement(name),listModel.add(0, name)將名稱添加到列表頂部。

對於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); 
    } 
} 

資源:

+0

它使它更好,但仍然不在頂部 – Ethan 2010-10-01 06:43:50

+0

@Ethan ,不是列表頂部的元素?還是你的意思是別的? – 2010-10-01 06:45:50

+0

不,就像我運行這個程序時,我輸入的名字被髮送到窗口的最底部, – Ethan 2010-10-01 06:50:23

相關問題