java - 布局在 Windows 7 中被破坏,但在 Windows XP 中看起来不错

标签 java jvm

我的 Java 出现了奇怪的问题,我的应用程序在 Windows XP 上看起来很好,但在 Windows 7 上却很奇怪(布局刚刚瓦解)。有人遇到同样的问题吗?文本字段的大小不同。

GroupLayout gl_panel = new GroupLayout(this);
        gl_panel.setHorizontalGroup(
                gl_panel.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGroup(gl_panel.createSequentialGroup()
                    .addContainerGap()
                    .addGroup(gl_panel.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                        .addComponent(lblPulseFrequency, javax.swing.GroupLayout.PREFERRED_SIZE, 86, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addComponent(lblChannelDelay_4, javax.swing.GroupLayout.DEFAULT_SIZE, 86, Short.MAX_VALUE)
                        .addComponent(lblChannelDelay, javax.swing.GroupLayout.DEFAULT_SIZE, 86, Short.MAX_VALUE)
                        .addComponent(lblChannelDelay_1, javax.swing.GroupLayout.DEFAULT_SIZE, 86, Short.MAX_VALUE)
                        .addComponent(lblChannelDelay_2, javax.swing.GroupLayout.DEFAULT_SIZE, 86, Short.MAX_VALUE)
                        .addComponent(lblChannelDelay_3, javax.swing.GroupLayout.DEFAULT_SIZE, 86, Short.MAX_VALUE)
                        .addComponent(lblBlankingTime, javax.swing.GroupLayout.PREFERRED_SIZE, 78, javax.swing.GroupLayout.PREFERRED_SIZE))
                    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                    .addGroup(gl_panel.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                        .addComponent(pulseFreqTextField, javax.swing.GroupLayout.Alignment.TRAILING, 0, 0, Short.MAX_VALUE)
                        .addComponent(blankingTimeTextField, 0, 0, Short.MAX_VALUE)
                        .addComponent(textField_9)
                        .addComponent(textField_8)
                        .addComponent(textField_7)
                        .addComponent(textField_6)
                        .addComponent(textField_5, javax.swing.GroupLayout.DEFAULT_SIZE, 85, Short.MAX_VALUE))
                    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                    .addGroup(gl_panel.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                        .addGroup(gl_panel.createSequentialGroup()
                            .addGroup(gl_panel.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                .addComponent(lblus_3)
                                .addComponent(lblus_2)
                                .addComponent(lblus_1)
                                .addComponent(lblus)
                                .addComponent(lblus_4))
                            .addGap(18, 18, 18)
                            .addGroup(gl_panel.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                .addComponent(lblChannelDelay_5, javax.swing.GroupLayout.DEFAULT_SIZE, 84, Short.MAX_VALUE)
                                .addComponent(lblChannelDelay_6)
                                .addComponent(lblChannelDelay_7, javax.swing.GroupLayout.DEFAULT_SIZE, 84, Short.MAX_VALUE)
                                .addComponent(lblChannelDelay_8, javax.swing.GroupLayout.DEFAULT_SIZE, 84, Short.MAX_VALUE)
                                .addComponent(lblChannelDelay_9, javax.swing.GroupLayout.DEFAULT_SIZE, 84, Short.MAX_VALUE))
                            .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                            .addGroup(gl_panel.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                                .addComponent(textField_14)
                                .addComponent(textField_13)
                                .addComponent(textField_12)
                                .addComponent(textField_11)
                                .addComponent(textField_10, javax.swing.GroupLayout.DEFAULT_SIZE, 86, Short.MAX_VALUE))
                            .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                            .addGroup(gl_panel.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                .addGroup(gl_panel.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)
                                    .addComponent(lblus_6, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                                    .addComponent(lblus_5, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                                    .addComponent(lblus_7, javax.swing.GroupLayout.Alignment.LEADING)
                                    .addComponent(lblus_8, javax.swing.GroupLayout.Alignment.LEADING))
                                .addComponent(lblus_9))
                            .addGap(230, 230, 230))
                        .addGroup(gl_panel.createSequentialGroup()
                            .addComponent(lblkhz)
                            .addContainerGap())))
            );
            gl_panel.setVerticalGroup(
                gl_panel.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGroup(gl_panel.createSequentialGroup()
                    .addGroup(gl_panel.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                        .addGroup(gl_panel.createSequentialGroup()
                            .addGap(117, 117, 117)
                            .addGroup(gl_panel.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                                .addComponent(lblChannelDelay)
                                .addComponent(textField_5, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addComponent(lblus)
                                .addComponent(lblChannelDelay_5)
                                .addComponent(textField_10, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addComponent(lblus_5, javax.swing.GroupLayout.PREFERRED_SIZE, 17, javax.swing.GroupLayout.PREFERRED_SIZE))
                            .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                            .addGroup(gl_panel.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                                .addComponent(lblChannelDelay_1)
                                .addComponent(textField_6, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addComponent(lblus_1)
                                .addComponent(lblChannelDelay_6)
                                .addComponent(textField_11, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addComponent(lblus_6))
                            .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                            .addGroup(gl_panel.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                                .addComponent(lblChannelDelay_2)
                                .addComponent(textField_7, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addComponent(lblus_2)
                                .addComponent(lblChannelDelay_7, javax.swing.GroupLayout.PREFERRED_SIZE, 17, javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addComponent(textField_12, javax.swing.GroupLayout.PREFERRED_SIZE, 20, javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addComponent(lblus_7))
                            .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                            .addGroup(gl_panel.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                                .addComponent(lblChannelDelay_3)
                                .addComponent(textField_8, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addComponent(lblus_3)
                                .addComponent(lblChannelDelay_8)
                                .addComponent(textField_13, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addComponent(lblus_8))
                            .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                            .addGroup(gl_panel.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                .addGroup(gl_panel.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                                    .addComponent(lblChannelDelay_4)
                                    .addComponent(textField_9, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                                .addGroup(gl_panel.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                                    .addComponent(lblus_4)
                                    .addComponent(lblChannelDelay_9)
                                    .addComponent(textField_14, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                                    .addComponent(lblus_9))))
                        .addGroup(gl_panel.createSequentialGroup()
                            .addGap(42, 42, 42)
                            .addGroup(gl_panel.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                                .addComponent(lblPulseFrequency)
                                .addComponent(pulseFreqTextField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addComponent(lblkhz))
                            .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                            .addGroup(gl_panel.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                                .addComponent(lblBlankingTime)
                                .addComponent(blankingTimeTextField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))))
                    .addContainerGap(35, Short.MAX_VALUE))
            );

最佳答案

您是否尝试过使用不同的屏幕分辨率?即使两台机器具有相似的分辨率,XP 和 7 也会以不同的方式绘制边距、标题栏等,这将影响有效的框架尺寸,因此 Java 布局可能仅根据操作系统的不同而表现不同。如果您实际更改屏幕分辨率,布局可能会完全爆炸。

您的代码看起来像是由某些 GUI 构建器(例如 NetBeans Matisse)生成的。我很遗憾地说,但它们实在是太糟糕了。他们给你WYSIWYG印象,但它们并不是所见即所得。考虑使用一些好的布局管理器手动编写 GUI,例如 MIGLayout .

关于java - 布局在 Windows 7 中被破坏,但在 Windows XP 中看起来不错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6014518/

相关文章:

java - 使用文件更新 JList

java强制返回类型为通用类型而不是对象类型以使用收集器和流构造映射

java - 有没有办法使用循环检查java中的所有组件名称?

kotlin - CoroutineExceptionHandler 应该如何处理 OutOfMemoryError 或其他 fatal error ?

java - 一个程序运行在多个 JVM 上?

java - 运行最快的算法竞赛

java - 没有引用的新对象的生命周期

java - 即时编译器如何优化 Java 并行流?

java - 将句子拆分为两个单词并作为键、值存储在 HashMap 中

java - 用解释型编程语言实现功能