【发布时间】:2015-08-07 03:02:52
【问题描述】:
我使用 class.javax.swing.JFrame
问题:我想知道 Netbeans 在设计时使用什么尺寸(preferredSize)?
jtpWindows = new javax.swing.JTabbedPane(); // Contains jPHoriz
jPHoriz = new javax.swing.JPanel(); // Contains jPHorizGraph
jPHorizGraph = new javax.swing.JPanel(); // Contains jPHorizGraph01, jPHorizGap and jPHorizGraph02
jPHorizGraph01 = new javax.swing.JPanel();
jPHorizGap = new javax.swing.JPanel();
jPHorizGraph02 = new javax.swing.JPanel();
// 现在是如何包含的
jPHorizGraph01
//jPHorizGraph01 Upper
jPHorizGraph01.setPreferredSize(new java.awt.Dimension(1679, 323));
javax.swing.GroupLayout jPHorizGraph01Layout = new javax.swing.GroupLayout(jPHorizGraph01);
jPHorizGraph01.setLayout(jPHorizGraph01Layout);
jPHorizGraph01Layout.setHorizontalGroup(
jPHorizGraph01Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 0, Short.MAX_VALUE)
);
jPHorizGraph01Layout.setVerticalGroup(
jPHorizGraph01Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 323, Short.MAX_VALUE)
);
jPHorizGap
//jPHorizGap is a vertical separator between jPHorizGraph01 and jPHorizGraph02
jPHorizGap.setBorder(javax.swing.BorderFactory.createEtchedBorder());
jPHorizGap.setPreferredSize(new java.awt.Dimension(1679, 12));
javax.swing.GroupLayout jPHorizGapLayout = new javax.swing.GroupLayout(jPHorizGap);
jPHorizGap.setLayout(jPHorizGapLayout);
jPHorizGapLayout.setHorizontalGroup(
jPHorizGapLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 0, Short.MAX_VALUE)
);
jPHorizGapLayout.setVerticalGroup(
jPHorizGapLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 8, Short.MAX_VALUE)
);
jPHorizGraph02
//jPHorizGraph02 Lower
jPHorizGraph02.setPreferredSize(new java.awt.Dimension(1679, 323));
javax.swing.GroupLayout jPHorizGraph02Layout = new javax.swing.GroupLayout(jPHorizGraph02);
jPHorizGraph02.setLayout(jPHorizGraph02Layout);
jPHorizGraph02Layout.setHorizontalGroup(
jPHorizGraph02Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 0, Short.MAX_VALUE)
);
jPHorizGraph02Layout.setVerticalGroup(
jPHorizGraph02Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 323, Short.MAX_VALUE)
);
插入 jPHorizGraph01、jPHorizGap 和 jPHorizGraph02 在 jPHorizGraph
javax.swing.GroupLayout jPHorizGraphLayout = new javax.swing.GroupLayout(jPHorizGraph);
jPHorizGraph.setLayout(jPHorizGraphLayout);
jPHorizGraphLayout.setHorizontalGroup(
jPHorizGraphLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jPHorizGraph01, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(jPHorizGraph02, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(jPHorizGap, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
);
jPHorizGraphLayout.setVerticalGroup(
jPHorizGraphLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPHorizGraphLayout.createSequentialGroup()
.addComponent(jPHorizGraph01, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addGap(0, 0, 0)
.addComponent(jPHorizGap, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(0, 0, 0)
.addComponent(jPHorizGraph02, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addContainerGap())
);
在 jPHoriz
jPHorizGraph
javax.swing.GroupLayout jPHorizLayout = new javax.swing.GroupLayout(jPHoriz);
jPHoriz.setLayout(jPHorizLayout);
jPHorizLayout.setHorizontalGroup(
jPHorizLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jPHorizGraph, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
);
jPHorizLayout.setVerticalGroup(
jPHorizLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPHorizLayout.createSequentialGroup()
.addComponent(jPHorizGraph, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
);
在 jtpWindows
jPHoriz
jtpWindows.addTab("Time", jPHoriz);
在 jframe 中插入 jtpWindows 和其他对象
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jpMain, javax.swing.GroupLayout.DEFAULT_SIZE, 1689, Short.MAX_VALUE)
.addComponent(jpReadFile, javax.swing.GroupLayout.DEFAULT_SIZE, 1689, Short.MAX_VALUE)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(2, 2, 2)
.addComponent(jtpWindows)
.addGap(3, 3, 3)))
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addComponent(jpMain, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(2, 2, 2)
.addComponent(jpReadFile, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(752, Short.MAX_VALUE))
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(56, 56, 56)
.addComponent(jtpWindows)
.addGap(0, 0, 0)))
);
这不是代码...只是解释!
[Width, Height]
JFrame.preferredSize = [1689, 806]
javax.swing.JTabbedPane jtpWindows.preferredSize = [1684, 750]
javax.swing.JPanel jPHoriz.preferredSize = [1679, 722]
javax.swing.JPanel jPHorizGraph.preferredSize = [1679, 669]
javax.swing.JPanel jPHorizGraph01.preferredSize = [1679, 323]
javax.swing.JPanel jPHorizGap.preferredSize = [1679, 12]
javax.swing.JPanel jPHorizGraph02.preferredSize = [1679, 323]
会发生什么? 答:当我在面板中绘图时,我需要面板的尺寸,因为我的绘图是剪切图像...
问题:我需要获取JFrame在Started时的值并修改该值,我该怎么做?
当用户更改 Jframe 的尺寸时,我需要调整 jPHorizGraph01 和 jPHorizGraph02 的宽度和高度
这是我的问题,在骑行方面我放了图表的标题,但是图像被剪掉了!!!
问题我需要使用什么事件来检测 JFrame 大小的变化,以及我需要在 JPanel 中更改哪些值?
第 1 版
问题 2:jPHorizGraph01、jPHorizGap 和 jPHorizGraph02 垂直排列成一排。
jPHorizGap 的高度是永久相等的,不应该改变!!!。 jPHorizGraph01 的高度必须等于 jPHorizGraph02!
如果 jPHorizGraph 的高度发生变化,那么 jPHorizGraph01 和 jPHorizGraph02 的高度必须在这两个对象之间按比例变化!!!
【问题讨论】:
-
在绘制组件时,您可以通过命名的getter从容器中请求
width和height -
“当用户更改Jframe的尺寸时,我需要调整jPHorizGraph01和jPHorizGraph02的宽度和高度”这应该由布局管理器控制
标签: java netbeans jpanel size drawing