Java 摆动式切碎机

Java 摆动式切碎机,java,swing,netbeans,jtable,gui-builder,Java,Swing,Netbeans,Jtable,Gui Builder,我有一个相当复杂的JTable子类(widgetable及其widgetablemodel),当我为了测试目的将其添加到虚拟JPanel时,它可以正常工作 因为我非常讨厌与LayoutManager一起工作,所以我喜欢使用NetBeans内置GUI构建器来完成所有的布局工作。然后,我通常只是围绕自动生成(GUI构建器)代码编写代码,这对我来说一直都很有效。这是两全其美的:我让我的演示看起来完全符合我的要求,而且我还可以对组件进行细粒度的控制 然而,我从未使用GUI Builder工具制作表格。在

我有一个相当复杂的JTable子类(
widgetable
及其
widgetablemodel
),当我为了测试目的将其添加到虚拟JPanel时,它可以正常工作

因为我非常讨厌与LayoutManager一起工作,所以我喜欢使用NetBeans内置GUI构建器来完成所有的布局工作。然后,我通常只是围绕自动生成(GUI构建器)代码编写代码,这对我来说一直都很有效。这是两全其美的:我让我的演示看起来完全符合我的要求,而且我还可以对组件进行细粒度的控制

然而,我从未使用GUI Builder工具制作表格。在昨晚对它进行了一段时间的修补之后,它看起来似乎只适合制作非常基本的(固定的行、固定的列等)JTables

我的
widgetable
实际上有一个动态的行数和列数、特殊的编辑器/渲染器以及许多其他的功能

我的问题:

我有两个相互冲突的约束:(1)我需要使用GUI builder将表精确地定位和调整到容器中所需的位置,但是,(2)通过GUI builder提供的表组件太基本,无法处理我的
widgetable

我需要一种方法,用GUI builder将“表占位符”设计到我的容器中,这样,一旦NetBeans自动生成占位符代码,我就会调整代码并指示它动态实例化我的
WidgeTables
之一,而使用我定义的占位符组件所占用的位置和大小

这样我可以吃我的蛋糕,也可以吃它。唯一的问题是,我认为GUI构建器不支持拖放抽象
JComponents
,定位和调整它们的大小,然后将子类插入到代码库的其他地方

以前有没有人遇到过这个问题,或者有什么有趣的建议?我想对我来说最好的办法就是卷起袖子学习布局经理,但我主要是一名服务器端开发人员,偶尔才到客户端来一次;老实说,我没有精力去了解GroupLayout及其险恶兄弟的复杂和肮脏


谢谢你的帮助

使用GUI生成器插入JTable,将其模型属性重置为默认值,并调整构造代码,使其看起来像

jTable1 = new WidgetTable(this.widgetTableModel);
您可以通过右键单击JTable,选择“Customize code”,在第一个组合框中选择“custom creation”而不是“default code”,然后键入构造函数调用的代码来调整创建代码


如果您需要jTable1变量的类型为
widgetable
而不是
JTable
,请在同一对话框中编辑“变量声明代码”。

NetBeans还允许您为构建UI创建自定义组件。这可能比您希望在WidgeTable中投入的工作要多,但如果您认为必须使用自定义组件构建更多的UI,则值得学习。

我一直都在这样做。我有一个子类JTable,用于GUI编辑器,它是动态的

  • 使用GUI编辑器和您选择的布局将JTable添加到项目中
  • 添加表后,右键单击它并单击自定义代码
  • 在JTable的构造函数中,将其更改为
    newwidgetable(newwidgetmodel())
    ,而不是
    newjtable(newdefaulttablemodel())
  • 为widgetable创建一个全局变量。类似于
    私有widgetable widgetable
  • 在构造函数中,在调用initComponents()之后,将JTable转换为一个小部件表,并从现在开始使用它。 `widgetTable=(widgetTable)jTable1
    好吧,现实世界的经验告诉我们,在吃蛋糕的同时又保留蛋糕的确切实例是不可能的。有时,我们似乎可以超越这个事实,但这是一种错觉,可能是由一些肮脏的黑魔法造成的:-)