- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在Java中有两个面板需要具有相同的布局,有我的初始化面板的函数。
private void InitializePanelCom(){
pnlCom=new JPanel();
pnlCom.setSize(300,160);
pnlCom.setLocation(10, 60);
add(pnlCom);
GridBagLayout gb=new GridBagLayout();
GridBagConstraints gc=new GridBagConstraints();
pnlCom.setLayout(gb);
jLabelcommPort = setJLabel("Com Port : ");
jLabelbaudRate = setJLabel("Baud Rate : ");
jLabelplcAddress = setJLabel("Plc Address : ");
jLabelsendTime = setJLabel("Send Time : ");
jLabelx50 = setJLabel(" x 50 ms (2 - 99)");
jComboBoxcommPort = setJComboBox(commPortList);
jComboBoxbaudRate = setJComboBox(bitRateList);
jTextAreaPlcAddress = setJTextField("");
jTextAreaSendTime = setJTextField("");
gc.insets = new Insets(10,0,0,0);
gc.ipadx = 120;
gc.weightx = 1;
gc.gridx = 0;
gc.gridy = 0;
gc.anchor=GridBagConstraints.EAST;
pnlCom.add(jLabelcommPort,gc);
gc.insets = new Insets(10,0,0,0);
gc.ipadx = 120;
gc.weightx = 1;
gc.gridx = 1;
gc.gridy = 0;
gc.anchor=GridBagConstraints.EAST;
pnlCom.add(jComboBoxcommPort,gc);
gc.insets=new Insets(10,0,0,0);
gc.ipadx=120;
gc.weightx=1;
gc.gridx=0;
gc.gridy=1;
gc.anchor=GridBagConstraints.EAST;
pnlCom.add(jLabelbaudRate,gc);
gc.insets=new Insets(10,0,0,0);
gc.ipadx=120;
gc.weightx=1;
gc.gridx=1;
gc.gridy=1;
gc.anchor=GridBagConstraints.EAST;
pnlCom.add(jComboBoxbaudRate,gc);
gc.insets=new Insets(10,0,0,0);
gc.ipadx=120;
gc.weightx=1;
gc.gridx=0;
gc.gridy=2;
gc.anchor=GridBagConstraints.EAST;
pnlCom.add(jLabelplcAddress,gc);
gc.insets=new Insets(10,0,0,0);
gc.ipadx=120;
gc.weightx=1;
gc.gridx=1;
gc.gridy=2;
gc.anchor=GridBagConstraints.EAST;
pnlCom.add(jTextAreaPlcAddress,gc);
gc.insets=new Insets(10,0,0,0);
gc.ipadx=120;
gc.weightx=1;
gc.gridx=0;
gc.gridy=3;
gc.anchor=GridBagConstraints.EAST;
pnlCom.add(jLabelsendTime,gc);
gc.insets=new Insets(10,0,0,0);
gc.ipadx=120;
gc.weightx=1;
gc.gridx=1;
gc.gridy=3;
gc.anchor=GridBagConstraints.EAST;
pnlCom.add(jTextAreaSendTime,gc);
gc.insets=new Insets(10,0,0,0);
gc.ipadx=120;
gc.weightx=1;
gc.gridx=2;
gc.gridy=3;
gc.anchor=GridBagConstraints.EAST;
pnlCom.add(jLabelx50,gc);
}
![alt text][1]
private void InitializePanelTcp(){
pnlTcp=new JPanel();
pnlTcp.setSize(300,160);
pnlTcp.setLocation(10, 60);
add(pnlTcp);
GridBagLayout gb=new GridBagLayout();
GridBagConstraints gc=new GridBagConstraints();
pnlTcp.setLayout(gb);
lblIPAddress=setJLabel("IP Address : ");
txtIPAddress=setJTextField("");
lblPort=setJLabel("Port : ");
txtPort=setJTextField("");
cmbBaudRateTCP = setJComboBox(bitRateList);
lblBaudRateTCP = setJLabel("Baud Rate : ");
lblParityCheck=setJLabel("Parity check : ");
txtParityCheck=setJTextField("");
gc.insets = new Insets(10,0,0,0);
//gc.ipadx = 20;
gc.weightx = 0.3;
gc.gridx = 0;
gc.gridy = 0;
gc.anchor=GridBagConstraints.WEST;
pnlTcp.add(lblIPAddress,gc);
gc.insets = new Insets(10,0,0,0);
//gc.ipadx = 80;
gc.weightx = 0.7;
gc.gridx = 1;
gc.gridy = 0;
gc.anchor=GridBagConstraints.WEST;
pnlTcp.add(txtIPAddress,gc);
gc.insets=new Insets(10,0,0,0);
//gc.ipadx=120;
gc.weightx=0.3;
gc.gridx=0;
gc.gridy=1;
gc.anchor=GridBagConstraints.WEST;
pnlTcp.add(lblPort,gc);
gc.insets=new Insets(10,0,0,0);
//gc.ipadx=80;
gc.weightx=0.7;
gc.gridx=1;
gc.gridy=1;
gc.anchor=GridBagConstraints.WEST;
pnlTcp.add(txtPort,gc);
gc.insets=new Insets(10,0,0,0);
//gc.ipadx=120;
gc.weightx=0.3;
gc.gridx=0;
gc.gridy=2;
gc.anchor=GridBagConstraints.WEST;
pnlTcp.add(lblBaudRateTCP,gc);
gc.insets=new Insets(10,0,0,0);
//gc.ipadx=0;
gc.weightx=0.7;
gc.gridx=1;
gc.gridy=2;
gc.anchor=GridBagConstraints.WEST;
pnlTcp.add(cmbBaudRateTCP,gc);
gc.insets=new Insets(10,0,0,0);
//gc.ipadx=120;
gc.weightx=0.3;
gc.gridx=0;
gc.gridy=3;
gc.anchor=GridBagConstraints.WEST;
pnlTcp.add(lblParityCheck,gc);
gc.insets=new Insets(10,0,0,0);
//gc.ipadx=0;
gc.weightx=1.7;
gc.gridx=1;
gc.gridy=3;
gc.anchor=GridBagConstraints.WEST;
pnlTcp.add(txtParityCheck,gc);
}
问题是第一个面板(initializetcp,图片看起来不一样,标签移到左侧,文本框又小又难看,它是不同的)。有人可以帮忙吗,我是 GridBagContsraints 的新手吗?
最佳答案
通常当我使用weightx或weighty时,我也会使用填充约束:gc.fill = GridBagConstraint.Horizontal;
例如,以下代码将使您的组件占用 50% 的可用水平空间。
gc.weightx = 0.5;
gc.fill = GridBagConstraint.Horizontal;
我实际上无法测试你的代码,但是尝试一下,它应该可以解决你的问题。您还应该尝试在父构造函数的末尾调用 pack(); (我想是 JFrame)。
关于java - GridBagConstraints问题-向左移动且大小不一样,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4680764/
我希望我的多行标签右对齐...不知道为什么这这么困难。我尝试使用weightx并添加一个空白jlabel并赋予其权重1.0。我无法让它发挥作用。这个想法是一个人全部左对齐,另一个人右对齐。 (有点像短
请看下面这张图片: 如您所见,“添加程序”、“删除程序”、“添加新单元”和“删除单元”与前面的按钮重叠。 之前的按钮放置在 (0,9) 处,指定的按钮放置在 (0,10) 处。 这是代码: impor
我需要使用 GridBagLayout 但出现以下错误。你能帮忙吗? java.lang.IllegalArgumentException: cannot add to layout: constra
如何填充感兴趣的网格单元中可用的垂直和水平空间? 例如: JTextArea file1 = new JTextArea(); file1.setBorder(BorderFactory.create
此代码生成三个按钮。按钮“一”出现在“北”并部分覆盖位于东的按钮“二”。按钮三出现在西南方。如何获得按钮 1 和 2 重叠但没有按钮 3 的相同布局? import java.awt.Componen
我有点困惑,是否可以有多个 GridBagConstraints? 我有两个使用 GridBagLayout 的面板,它们都受到相同约束的影响。在将较小的组件放在较大的组件旁边时,这给我带来了一个问题
我遇到异常:java.lang.IllegalArgumentException: cannot add to layout: constraints must be a GridBagConstra
使用 GridBagLayout,我尝试这样安排我的组件: 但是组件变成了这样,所有的东西都混在一起了: 我以前从未使用过GridBagConstraints 字段gridwidth 和gridhei
这就是我想要的结果: 但这就是我得到的: 现在,我了解 GridBagConstraints.HORIZONTAL; 允许组件水平占据任何空白空间,但我不确定如何让组件仅填充其网格空间的剩余量。这是我
我对 Swing 编程有些陌生,我发现尽管我很喜欢 GridBagLayout 的强大功能,但如果您有很多组件,就会有很多代码行来设置布局。除了使用可视化编辑器之外,还有什么好的方法可以控制这种情况?
我目前已使用以下代码创建了一个 JFrame。我希望三个 JLabel 一个在另一个之上,它们相应的 JTextFields 在右侧,四个 JButtons 在它们下面(我最终将使用插图将它们分开)。
我正在尝试如下对齐我的组件: 但目前他们是这样的: 这两个组件位于使用 FlowLayout 的 JPanel 上(构造函数包含 FlowLayout.LEFT)。第一个组件具有以下网格包约束: Gr
这个问题已经有答案了: How to set an image as a background for Frame in Swing GUI of java? (8 个回答) 已关闭 3 年前。 我得
我正在尝试创建一个表单,但在使用 GridBagConstraints 时遇到困难。当我设置gridy时,它似乎不起作用。这是我的代码: thisWindow = new GridBagConstra
我是 Java Swing 的新手,正在开发一个项目来帮助我更加熟悉它。我注意到在更改标签文本时, GridBagLayou 中的单元格增加/减少(您可以通过边界线大小调整来判断)。我想知道是否有办法
为什么我的按钮约束不起作用?我查看了 Java 文档,并且正在做与教程相同的事情,但对我来说,无论我使用什么 gridx、y、宽度或填充,按钮都保持不变。有任何想法吗?这是我的代码: class My
我制作了一个自定义组件,以便可以显示图像等,但它拒绝正确使用 anchor 并在顶部居中。有人有解决办法吗?另外,如果有人能给我指出一个更简单的布局,我可能会切换,但我已经使用了大量的 GridBag
我正在设置一个面板,并且正在使用 GridBagLayout。但是,当我设置面板时,标签没有按照我想要的方式排列(我希望它们像统计表一样阅读)。旋转标签应该显示在最左侧,但它们显示在中间。我的代码中是
我有几种方法可以在 JPanel 中创建自己的组件 JButton 或 JLabel。然后我有一个单独的方法,它将所有这些 JPanels 添加到 JFrame 中。我还在 JPanel 上使用 gr
我发现很多帖子讨论如何使用 GridBagLayout,但它们总是与我需要的相反。 例如,在this post中它们的顶行按钮跨越宽度,而其下方只有一个按钮。我的兴趣主要是前两行。 但考虑相反的情况,
我是一名优秀的程序员,十分优秀!