2010-10-01 3 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 он заголовок bar приложения? – tster

+0

нет, когда я вхожу в имя, я хочу, чтобы имя выводилось в верхний левый угол окна, но по какой-то причине оно отправляется на дно – Ethan

ответ

3

Вы можете просто использовать метод add(0, object).

Вместо listModel.addElement(name), listModel.add(0, name) будет добавлено имя в верхней части списка.

Для размера JList вы не должны использовать эту границу, но вместо того, чтобы выбрать PreferredSize для 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

+0

@ Ethan , Не является ли элемент в верхней части списка? Или вы имели в виду что-то еще? –

+0

нет, например, когда я запускаю эту программу, имя, которое я вводил, отправляется в самую нижнюю часть окна – Ethan