【问题标题】:Creating a list and action of list items using Swing使用 Swing 创建列表项的列表和操作
【发布时间】:2013-03-14 10:07:51
【问题描述】:

下面是我在 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);
    }
}

【问题讨论】:

  • 您的代码有效。应该显示什么文字?在哪里?
  • 如果你多准备一些问题,你会更容易得到答案。除了更准确地说明您想要做什么之外,您还应该让我们知道您已经阅读了 Swing 教程。我们不会为您阅读,但如果教程中有您不理解的内容,我们可以提供帮助。

标签: java swing list using


【解决方案1】:

我认为下面的代码 sn -p 会产生预期的效果。您应该放大框架以查看效果。

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

您可以添加 JPanel 以查看更灵活的结果。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-11-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-08
    • 2013-03-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多