NetBeans 中的 Java Swing Jscrollpane

标签 java swing netbeans jscrollpane

我有一个 Java 应用程序,它将 JTextFields @runtime 添加到 JPanel。基本上用户单击一个按钮并添加新的 JTextField,再次单击再次添加...

每个新的 JTextField 都在前一个 JTextField 的正下方。显然我很快就用完了空间,所以我正在尝试使用 JScrollPane,这就是 hell 开始的地方,因为无论我尝试什么,它都不起作用。

  1. 右键单击 JPanel 并包含在滚动 Pane 中。没用。
  2. 阅读一些示例后,我意识到我必须将 JPanel 作为 JScrollPane 构造函数的参数。我是通过右键单击 ScrollPane 和 CustomizeCode 来完成的。因为显然自动生成的代码在 NetBeans 中受到保护,所以我不能手动更改所有这些声明等。还是不行。
  3. 我曾尝试将 JPanel 和/或 JScrollPane 的 PreferedSize 设置为 null,但没有帮助。
  4. JScrollPane 是我们称之为 TabJPanel(它又是 TabbedPane 的选项卡)的子项。我试图搞乱他们的关系,基本上尝试了 JFrame、JPanel(持有文本字段)、TabJPanel 和 JScrollPane 之间的所有可能的父关系方式,但没有任何效果。
  5. 为了以防万一,我还让 VerticalScrollBar “始终可见”。所以我看到了滚动条,只是用 JTextFields 填充 JPanel 不会影响它。
  6. 当 JTextFields 太多时,它们会“低于”JPanel 的底部边框,我再也看不到它们了。

添加新的 JTextFields 的代码是这样的,在它相关的情况下。

JTextField newField = new JTextField( columns );
Rectangle coordinates = previousTextField.getBounds();
newField.setBounds(coordinates.x , coordinates.y + 50, coordinates.width, coordinates.height);

JPanel.add(newField);
JPanel.revalidate();
JPanel.repaint();

抱歉发了一篇很长的帖子,我只是想提供尽可能多的信息,因为作为新手,我不知道什么是完全相关的,什么不是。提前致谢:)

最佳答案

由于现在有另一个答案,我也添加我的建议。

这听起来很像将 JTable 与单列一起使用的问题。 JListnot yet editable (可能永远不会)。

JTable 会为您处理布局问题,您可以轻松地通过表格访问值。

使用您自己的 TableModel(一个简单的 Vector 就足够了),并向其添加值。

关于NetBeans 中的 Java Swing Jscrollpane,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2054855/

相关文章:

java - "AWT-EventQueue-0"java.lang.InternalError : fillbuf

java - 如何使用 hibernate 和 MySQL 在 java 中创建单页应用程序 (SPA)

java - 如何获取当前选项卡的Jtable或者jTable模型?

java - 使用了哪些组件和技术来创建 Bitdefender 的 GUI?

java - Mockito 说 "Wanted but not invoked"但调试测试跳转到那个方法

将 {Item1}.Item2 处理成数组或列表的 Java 正则表达式代码

java - "Graphics2D g2d = (Graphics2D) g;"是什么意思?下面代码段中这一行的意义是什么?

java - 当java中另一个jTextfield为空时如何再次禁用jTextfield

php - 通过浏览器显示 MAMP htdocs 中的所有文件

java - 努力在 Netbeans IDE 8.0.2 中安装/添加 JUnit 插件