将组件添加到 JPanel

发布于 2024-09-02 18:01:02 字数 414 浏览 2 评论 0原文

我正在使用 netBeans 编辑器创建桌面应用程序。我想添加组件而不使用拖放方式。我正在尝试这样的代码将 JList 添加到 JPanel 但没有显示任何内容

JList jl = new JList();
    Vector<String> v= new Vector<String>();
    v.add("one");
    v.add("Two");
    v.add("Three");
    jl.setListData(v);
    JScrollPane js = new JScrollPane(jl);
    js.setLocation(50, 50);
    js.setSize(100, 100);
    js.setVisible(true);
    jPanel1.add(js);

I am using netBeans editor to create desktop application . and i want to add Component without using drag and drop way. I am trying code like this for adding JList to JPanel but nothing showed

JList jl = new JList();
    Vector<String> v= new Vector<String>();
    v.add("one");
    v.add("Two");
    v.add("Three");
    jl.setListData(v);
    JScrollPane js = new JScrollPane(jl);
    js.setLocation(50, 50);
    js.setSize(100, 100);
    js.setVisible(true);
    jPanel1.add(js);

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

等风来 2024-09-09 18:01:02

我想添加组件而不使用拖放方式。

这是一个简单的 JList< /a> 不使用 NetBeans 的 GUI 编辑器的示例。请参阅如何使用列表 了解更多。

import java.awt.*;
import java.util.Random;
import javax.swing.*;

public class JListTest {

    private static final Random random = new Random();

    public static final void main(String args[]) throws Exception {
        SwingUtilities.invokeLater(new Runnable() {

            public void run() {
                createAndShowGUI();
            }
        });
    }

    private static void createAndShowGUI() {
        final DefaultListModel dlm = new DefaultListModel();
        for (int i = 0; i < 1000; i++) {
            dlm.addElement("Z" + (random.nextInt(9000) + 1000));
        }
        final JList list = new JList(dlm);

        JFrame frame = new JFrame("Test");
        frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
        frame.add(new JScrollPane(list), BorderLayout.CENTER);
        frame.pack();
        frame.setVisible(true);
    }
}

I want to add Component without using drag and drop way.

Here's a simple JList example that doesn't use the NetBeans' GUI editor. See How to Use Lists for more.

import java.awt.*;
import java.util.Random;
import javax.swing.*;

public class JListTest {

    private static final Random random = new Random();

    public static final void main(String args[]) throws Exception {
        SwingUtilities.invokeLater(new Runnable() {

            public void run() {
                createAndShowGUI();
            }
        });
    }

    private static void createAndShowGUI() {
        final DefaultListModel dlm = new DefaultListModel();
        for (int i = 0; i < 1000; i++) {
            dlm.addElement("Z" + (random.nextInt(9000) + 1000));
        }
        final JList list = new JList(dlm);

        JFrame frame = new JFrame("Test");
        frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
        frame.add(new JScrollPane(list), BorderLayout.CENTER);
        frame.pack();
        frame.setVisible(true);
    }
}
雨巷深深 2024-09-09 18:01:02

滚动列表没有出现,或者列表中的数据项没有出现?另外,您正在手动设置位置。说真的,不要这样做——使用布局管理器,其中许多都是可用的,您可以 在 Netbeans GUI 编辑器 Mattise 中轻松使用

如果主窗口处于布局管理器的控制之下,然后向其中添加一些指定其位置和大小的内容,那么所有混乱都会爆发。也就是说,布局管理器将覆盖它,可能导致大小变为 0, 0。

您需要做的是在布局管理器中创建一个 JPanel 来保存新组件的位置并确保它具有已知的字段名称您可以参考并使用来添加。确保Panel 的属性中也有FlowLayout 或其他内容。

The scroll list doesn't appear, or the data items in the list? Also, you're setting the position manually. Seriously, don't do that -- use a layout manager, many of which are available and you can easily use in the Netbeans GUI editor Mattise.

If the main window is under the control of a layout manager and then you add something to it that specifies its position and size, all mayhem will break loose. Namely, the layout manager will overwrite this, possibly with the result of size becoming 0, 0.

What you need to do is create a JPanel in your layout manager to hold the position of the new component and make sure it has a known field name you can reference and use to add to. Make sure that Panel also has FlowLayout or something in the properties.

似狗非友 2024-09-09 18:01:02

当您动态创建 GUI 元素时,您可能需要调用 repaint()。

you may want to call repaint() when you dynamically create GUI elements.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文