0

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);
    }
}
4

1 に答える 1

3

この方法を使用するだけですadd(0, object)

の代わりにlistModel.addElement(name)listModel.add(0, name)リストの一番上に名前を追加します。

JListのサイズについては、この境界線を使用するのではなく、代わりにJSCrollPaneのpreferredSizeを選択してください。

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

資力 :

于 2010-10-01T06:19:44.307 に答える