1

以下は、Swing でリストを作成する私のコードです。リストをクリックすると色が変わりますが、背景の色の変化ではなくテキストを表示する必要があります。または、リスト項目をクリックすると、別のウィンドウ/そのウィンドウ内にテキストを表示する必要があります。これに関して私を助けてください。以下は、クリックすると色が変わる私のコードです。

import javax.swing.*;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;
import java.awt.*;
import java.awt.event.*;

public class JListDemo extends JFrame {

    JList list;
    String[] listColorNames = {"black", "blue", "green", "yellow",
        "white"};
    Color[] listColorValues = {Color.BLACK, Color.BLUE, Color.GREEN,
        Color.YELLOW, Color.WHITE};
    Container contentpane;

    public JListDemo() {
        super("List Source Demo");
        contentpane = getContentPane();
        contentpane.setLayout(new FlowLayout());
        list = new JList(listColorNames);
        list.setSelectedIndex(0);
        list.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
        contentpane.add(new JScrollPane(list));
        list.addListSelectionListener(new ListSelectionListener() {
            public void valueChanged(ListSelectionEvent e) {
                contentpane.setBackground(listColorValues[list
                    .getSelectedIndex()]);
            }
        });
        setSize(200, 200);
        setVisible(true);
    }

    public static void main(String[] args) {
        JListDemo test = new JListDemo();
        test.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }
}
4

1 に答える 1

0

次のコード スニペットは、望ましい効果を生み出すと思います。効果を確認するには、フレームを拡大する必要があります。

contentpane.add(new JLabel(listColorNames[list.getSelectedIndex()]),BorderLayout.WEST);

JPanel を追加して、より柔軟な結果を表示できます。

于 2015-10-18T18:23:06.837 に答える