java - 如何在 JPanel 内部使用 JList 以便设置列表的边界?

标签 java swing jpanel jlist setbounds

我在 Java 中使用 JList 时遇到问题。我看过有关如何使用它们的视频教程,但它们都以某种布局来使用它们。我希望它的“setPreferedLayout”为空,并且我可以使用 setBounds 方法来决定我的列表和按钮在窗口上的位置。当我这样做时,我执行诸如frame.add(list)或panel.(list)之类的操作将其添加到我的面板中,它不会显示在窗口上,但我的按钮会显示。

我有这样的东西:

    //DECLARATION
    JFrame f = new JFrame("main Window");
    JPanel p = new JPanel();

    int WIDTH = 800;
    int HEIGHT = 650;

    public static JList mainList;
    String[] mainArray = {"one","two","three"};

    //INIT
    public mainClass() {
        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        f.add(p);
        f.setVisible(true);
        p.setLayout(null);
        p.setPreferredSize( new Dimension(WIDTH,HEIGHT) );
        f.pack();
        p.setVisible(true);

        p.setFocusable(true);

        System.setProperty("sun.java2d.opengl","true");
        Thread thr1 = new Thread (r1);
        thr1.start();

        mainList = new JList(mainArray);
        mainList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
        mainList.setSelectedIndex(0);
        mainList.setVisibleRowCount(3);
        JScrollPane listScrollPane = new JScrollPane(mainList);
    }

再次,我正在尝试创建一个 JList,我可以将其放在我想要的任何位置。这基本上就是我想要得到的。每当我尝试以 Jbuttons 的工作方式对其进行编辑(设置其边界并将其添加到面板)时,当我运行程序时它不会显示...

最佳答案

public mainClass() {
        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        mainList = new JList(mainArray);
        mainList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
        mainList.setSelectedIndex(0);
        mainList.setVisibleRowCount(3);
        JScrollPane listScrollPane = new JScrollPane(mainList);
        p.add(listScrollPane);
        f.add(p);
        p.setPreferredSize( new Dimension(WIDTH,HEIGHT) );        
        f.pack();        
        f.setVisible(true);
        p.setFocusable(true);

        System.setProperty("sun.java2d.opengl","true");
        Thread thr1 = new Thread (r1);
        thr1.start();


    }

这应该可以工作,你从来没有将你的列表添加到面板中,而且你设置比 pack() 可见,那是行不通的。您应该做的最后一件事是设置可见。

关于java - 如何在 JPanel 内部使用 JList 以便设置列表的边界?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31685207/

相关文章:

java - 如何动态更新java Canvas ?

java - 动态添加组件到 JPanel

java - Quartz 调度程序无法获取 JNDI DB 资源但无论如何都会启动

java - 如何在 Eclipse 中增加 Java 应用程序的堆内存

java - 通过单击复选框禁用 jtable 中的组合框

java - JScrollPane 中的 JPanel 未显示

java - 如何更改 JList 中的模型显示

java - Java中字符串相乘

java - 400 对 POST 服务的错​​误请求

java 帮助文件未获取(.hs)