java - 如何使用 Netbeans 将 jpanel 置于 jpanel 的中心?

标签 java swing layout jpanel netbeans6.8

使用 Netbeans,我成功地将一个具有固定大小的 jpanel 放在另一个 jpanel 中。现在我无法重复它 - 只能复制它。

我做得怎么样? (或者我应该将 x 和 y 放在另一个 jpanel 中具有固定大小的 jpanel 中心)。

结果与代码不同:

工作 - 搜索 .addContainerGap( 并查看下一个不工作:

        javax.swing.GroupLayout center3Layout = new javax.swing.GroupLayout(center3);
        center3.setLayout(center3Layout);
        center3Layout.setHorizontalGroup(
            center3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 1064, Short.MAX_VALUE)
            .addGroup(center3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGroup(center3Layout.createSequentialGroup()
                    .addContainerGap(30, Short.MAX_VALUE)
                    .addComponent(mainPanel3, javax.swing.GroupLayout.PREFERRED_SIZE, 
javax.swing.GroupLayout.DEFAULT_SIZE, 
javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addContainerGap(30, Short.MAX_VALUE)))
        );
        center3Layout.setVerticalGroup(
            center3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 650, Short.MAX_VALUE)
            .addGroup(center3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGroup(center3Layout.createSequentialGroup()
                    .addContainerGap(23, Short.MAX_VALUE)
                    .addComponent(mainPanel3, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addContainerGap(23, Short.MAX_VALUE)))
        );
<小时/>

不工作 - 搜索 .addGap 与上面的工作相比。

    javax.swing.GroupLayout center2Layout = new javax.swing.GroupLayout(center2);
    center2.setLayout(center2Layout);
    center2Layout.setHorizontalGroup(
        center2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
        .addGap(0, 1073, Short.MAX_VALUE)
        .addGroup(center2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(center2Layout.createSequentialGroup()
                .addGap(0, 34, Short.MAX_VALUE)
                .addComponent(mainPanel2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(0, 35, Short.MAX_VALUE)))
    );
    center2Layout.setVerticalGroup(
        center2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
        .addGap(0, 654, Short.MAX_VALUE)
        .addGroup(center2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(center2Layout.createSequentialGroup()
                .addGap(0, 25, Short.MAX_VALUE)
                .addComponent(mainPanel2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(0, 25, Short.MAX_VALUE)))
    );

我并排查看了属性等 - 请帮忙! :)

最佳答案

我无法在 Netbeans 中重现将 JPanel 置于另一个 JPanel 中心的方法(使用 GroupLayout,所以)。如果有人能找到它,我也很高兴知道。

但是,我可以建议您将外部面板的布局更改为 GridBagLayout (您也可以在 Netbeans 中使用上下文菜单中的“setLayout”执行此操作)。
默认GridBagConstraints应该正是您所需要的,内面板将以其首选尺寸居中。因此,您实际上不需要自己亲自指定它们。

关于java - 如何使用 Netbeans 将 jpanel 置于 jpanel 的中心?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2872465/

相关文章:

java - 如何从剪贴板复制/粘贴样式文本?

java - 通过 getter/setter 将数据传递给其他类

java - 物质外观和感觉不起作用

java - 更新文本区域 Swing Java

css - 如何在浏览器屏幕中央对齐两个非固定宽度的 div?

java - Android - 横向文本重叠但纵向不重叠

java - 尝试提取数据并写入另一个电子表格时结果为空

java - 调用通用方法java的编译器错误

java - 如何通过按 JButton 来更改整数值?

android - 指定 imageView 调整大小为屏幕的百分比