将组件添加到 JPanel
我正在使用 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
这是一个简单的
JList
< /a> 不使用 NetBeans 的 GUI 编辑器的示例。请参阅如何使用列表 了解更多。Here's a simple
JList
example that doesn't use the NetBeans' GUI editor. See How to Use Lists for more.滚动列表没有出现,或者列表中的数据项没有出现?另外,您正在手动设置位置。说真的,不要这样做——使用布局管理器,其中许多都是可用的,您可以 在 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.
当您动态创建 GUI 元素时,您可能需要调用 repaint()。
you may want to call repaint() when you dynamically create GUI elements.