我的GridbagLayout有些问题。我创建了一个JPanel(在本例中称为mainPanel),它的布局被设置为GridBagLayout。我已经为每个JButton指定了约束,并将约束添加到每个Button。现在,当我运行代码时,按钮总是紧挨着的,而不考虑我在约束中指示的Gridx/Gridy值。此外,按钮总是位于JFrame的中心,我希望一个按钮出现在右上角、左上角和南边。
import javax.swing.*;
import java.awt.*;
public class test {
public static void main (String[] args) {
myJFrame test = new myJFrame();
}
}
class myJFrame extends JFrame {
public myJFrame () {
setSize(500,500);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
mainPanel myPanel = new mainPanel();
add(myPanel);
setVisible(true);
}
}
class mainPanel extends JPanel {
public mainPanel(){
setLayout(new GridBagLayout());
GridBagConstraints c = new GridBagConstraints();
c.anchor = GridBagConstraints.NORTHWEST;
c.gridx = 1000;
c.gridy= 1;
add(new JButton("1"),c);
c.anchor = GridBagConstraints.NORTHEAST;
c.gridx = 100;
c.gridy= 1;
add(new JButton("2"),c);
c.anchor = GridBagConstraints.SOUTH;
c.gridx = 200;
c.gridy= 1;
add(new JButton("3"),c);
}
}
这是我运行代码时得到的结果
现在,当我运行代码时,按钮总是紧挨着的,而不考虑我在约束中指示的Gridx/Gridy值。
正确,不能只指定随机单元格。每个单元格中必须有一个组件。
此外,按钮始终位于JFrame的中心,
你为什么要选择像100,200,1000这样的随机x位置?也许水平的boxlayout
会是更好的布局管理器。您可以添加组件,然后在它们之间添加空格:
panel.add( button1 );
panel.add( Box.createHorizonalStrut(100);
panel.add( button2 );
panel.add( Box.createHorizonalStrut(200);
或者使用FlowLayout并指定每个组件之间的“间隙”。
问题内容: 我发现,当我编写“ pnlMap.add(map [i] [j])”时,键侦听器将无法工作。map是JButton的集合,pnlMap是JPanel。 公共游戏(玩家播放器){ 问题答案: 为了工作,必须将其注册为可聚焦的组件并使其具有键盘焦点。默认情况下,大多数容器都喜欢和无法将其聚焦(在考虑使它们成为容器之前,我会非常小心)。这意味着,一旦您添加了一个可以接受键盘焦点的组件(并且它
我有一些代码生成以下内容: 我希望3、4和5个JTextFields在JLabels旁边,就像1和2一样。我的代码是尝试这样做,但上面的图像是结果。 有人能指出我代码中的问题吗?
我是Spring和Java EE的新手。这是我的一个非常简单的应用程序: web.xml 我使用glassfish 4.1和IDEA。如果没有行 然后它工作得很好,并打开hello.jps页面(没有css和js资源)。Glassfish日志: [2015-03-04T17:18:04.880+0400][glassfish 4.1][警告][][org.springframework.web.se
我正在尝试将此 JPanel 添加到 JFrame 中,但我看不到他。当我创建新的 java 类并自己制作这个框架时,一切都很好。 来自JFrame表单的代码。 来自 JPanel 的代码: 来自Java类的代码。 我想不出区别在哪里。有人能帮我吗?
我在向JFrame添加JLabel时遇到问题。我使用了一些教程中描述的JPanel,但标签不会在框架中弹出;其他swing组件(如JTextField、JButton等)也存在同样的问题。。绘制直线、矩形等确实可行。我希望有人知道,我在这里犯了什么样的错误: 主方法位于另一个类中: 框架按预期弹出,但JLabel丢失。感谢所有有用的评论。
我有一个关于向Java框架添加组件的问题。 我有一个带有两个按钮的JGroup和一个添加了JTable的JScrollPane。我想将这两个都添加到JFrame中。 我可以将JPanel添加到JFrame,或者将JScrollPane添加到JFrame,并且它们可以正确显示。我很难将它们都添加到JFrame并显示它们。 是否有与JFrames相关的东西不允许这样做?任何帮助都将不胜感激。 编辑 问