Tag: gridbaglayout

无法将3个JPanel添加到主面板

我有3个JPanels,我想将它们全部放在一个JPanel中。 我使用GridBagLayout作为主面板。 但是只添加了一个面板。 为什么会这样? gblayout=new GridBagLayout(); gbc=new GridBagConstraints(); panel1Customizer(); panel2customizer(); panel3Customizer(); setLayout(gblayout); gbc.fill=GridBagConstraints.HORIZONTAL; gbc.anchor=GridBagConstraints.NORTHWEST; gbc.weightx=1; gbc.weighty=1; gbc.gridheight=GridBagConstraints.REMAINDER; add(panel1, gbc); add(panel2, gbc); gbc.gridwidth=GridBagConstraints.REMAINDER; add(panel3, gbc); 自定义程序方法是将项添加到这些面板中的方法。

如何从具有GridBagLayout布局的JPanel获取位于特定gridx中的组件,gridy?

我有一个带有gridbaglayout布局的jpanel,其中有几个jtextfields,几个jlabels,几个动态添加的jbuttons。 因此我无法知道他们的具体命令,因此无法使用panel.getComponent(count)。 如果有像getGridx(int x)或getGridy(int y)这样的东西,我查看了api。 没找到。 有什么类似的方法吗?

将JLabel置于JPanels中心

我正在制作一个记分计划,但我遇到了一个问题。 我试图做的是在顶部有一个包含两个JPanel的JPanel,而JPanel又包含两个团队名称。 我很困惑为什么程序顶部的两个JLabel没有集中在它们所包含的JPanel中。 import java.awt.*; import java.awt.event.*; import javax.swing.*; public class ScoreFrame extends JFrame { private static final Dimension SCREEN_SIZE = Toolkit.getDefaultToolkit().getScreenSize(); private static final int WIDTH = SCREEN_SIZE.width; private static final int HEIGHT = SCREEN_SIZE.height; private final JTextField[] nameField = new JTextField[] { new JTextField(), new JTextField() }; private final JLabel[] nameLabel = new […]

Java GridBagLayout自动构建

我使用GridBagLayout和GridBagConstraints设计了一个GUI。 它包含可变数量的行,每行包含一些可能的列布局。 为了测试代码,我构建了具有不同颜色的面板GUI,用于说明每行和每列中所有单元格的位置和resize的行为。 这个测试GUI工作正常,但现在我需要自动化它的构造。 具体来说,我需要将行作为三种不同类型之一。 如果您运行下面的代码并查看生成的GUI,您可以看到row1是一种类型,行2,6和7是另一种类型,而行3,4和5是第三种类型。 我需要将这三种类型的每一行封装在自己的类中。 更重要的是,我需要我的代码能够创建第三种类型的可变数量的行(在示例中由行3,4和5说明)。 (这是用于数据分析软件。面板将加载数据视图和工具来操纵数据视图。) 当我尝试将行封装到自己的类中时,GUI看起来应该看起来不应该看起来。 下面的测试代码以它应该看起来的方式生成GUI布局。 任何人都可以告诉我如何更改此代码,以便它具有上面第一段中描述的function? 您可以将我的测试代码粘贴到您的IDE中,以使其立即运行。 测试代码分为两个单独的文件,如下所示: GridBagLayoutDemo.java的代码是: import java.awt.*; import javax.swing.JFrame; public class GridBagLayoutDemo { final static boolean RIGHT_TO_LEFT = false; public static void addComponentsToPane(Container pane) { if (RIGHT_TO_LEFT) {pane.setComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT);} pane.setLayout(new GridBagLayout()); // top row (fill, gridx, gridy, gridwidth 1, weightx 0, weighty 0, ipady 0) TestPanel […]

删除GridBagLayout中按钮周围的空间

我写了这个令人头疼的来源,以展示另一个问题中提到的游戏画面的布局。 它将按钮(或标签,可在启动时选择)放入GridBagLayout 。 如果您在提示时(在GUI出现之前)选择不使用按钮,则整个GUI非常紧凑且没有间隙。 但是如果你选择使用按钮(如果你的设置就像我的那样)看起来像这样…… 注意红色水平线。 这是面板显示的BG颜色。 当GUI使用标签时,不会看到这些行。 稍微拉伸GUI以查看它甚至没有在每行之后放置一条红线(有九行) – 尽管每行使用按钮(相同的组件)。 如何在使用按钮时删除额外的垂直空间? 我认为它必须是我在配置按钮或行权重时忘记做的事情,但我无法弄清楚是什么! import java.awt.*; import java.awt.image.BufferedImage; import javax.swing.*; import java.net.URL; import javax.imageio.ImageIO; public class SoccerField { private JPanel ui = null; int[] x = {0, 35, 70, 107, 142, 177, 212, 247, 282, 315}; int[] y = {0, 45, 85, 140, 180, 225, 265, […]

GridBagLayout:均匀分布的单元格

是否可以使用GridBagLayout管理器完全模拟GridLayout的行为? 基本上,我有一个8×8网格,其中每个单元格应具有相同的宽度和高度。 GridLayout自动执行此操作。 但我想在网格中添加另一行和列,其大小与其他大小不同 。 该行/列应占用可能遗留的所有剩余空间(因为可用大小无法平均分配到8个单元中)。 这是可能的,还是我 – 再次 – 必须使用不同的布局管理器? 编辑 这是我想要实现的简单图形,简化为4个单元格: 有色单元格是我添加到实际网格(灰色)的单元格,其中单元格具有相同的高度和宽度x 。 因此网格的高度和宽度为4*x 。 我现在希望其他单元格具有必要的宽度/高度(minimumSize)加上完整尺寸的可用宽度/高度的其余部分。 如果更改整个面板的大小,灰色网格单元应该再次占用尽可能多的空间。

我无法解决的小GUI问题。 JTextField的

我无法做到的小错误。 所以现在我的程序GUI看起来像这样: 现在,在“Mark”列下有一个TextField,用户可以输入他们的数据。 我还想在重量部分使用相同的内容,我想在“重量”列下插入一个TextField。 但是当我尝试放入TextField时,当窗口很小时,Textfields都会像这样转动: 当窗口放大时: 我怎样才能使Mark And Weight下有一个文本字段? 码: public class Gradeanalysis implements ActionListener { public void actionPerformed (ActionEvent e){ GridBagConstraints gbc = new GridBagConstraints(); //Adding the JPanels. Panel for instructions JPanel panel = new JPanel(); panel.setLayout(new GridBagLayout()); //JLabel for the Instructions. JLabel label = new JLabel(” Instructions: Type in the grades you’ve received, […]

如何使用GridBagConstraints创建布局?

我想像我这样布局我的JPane: ——- | | | | | | ——- | | ——- 这样,顶部比底部更大/更高(顶部由另一个JPanel组成并使用Graphics对象显示图像,而底部也包含另一个JPanel但使用Graphics对象绘制一些线条和文字)。 我听说最好的方法是使用GridBagLayout和GridBagConstraints。 我试图弄清楚GridBagConstraints的适当属性,我遇到了一些困难。 这就是我到目前为止…… 对于顶部,我有: gridx = 0 gridy = 0 weighty = 1.0; // expand downwards, because the bottom should never expand in the Y direction fill = GridBagConstraints.BOTH 对于底部,我有: gridx = 0 gridy = 1 fill = GridBagConstraints.HORIZONTAL anchor = GridBagConstraints.PAGE_END […]

如何在Java中创建带有连接按钮的ButtonGroup?

我目前正在尝试创建一组切换按钮,这些按钮类似于Eclipse的格式化程序首选项中使用的切换按钮: 目前我已通过以下方式尝试此操作: public class Exercise extends JFrame { private String[] buttonNames = {“A”, “B”, “C”, “D”, “E”}; Exercise() { final JPanel topPanel = new JPanel(); topPanel.setLayout(new GridBagLayout()); GridBagConstraints c = new GridBagConstraints(); int tabCount = 0; final ButtonGroup topButtonGroup = new ButtonGroup(); for (String buttonName : buttonNames) { JToggleButton tabButton = new JToggleButton(buttonName); topButtonGroup.add(tabButton); c.fill […]

Java TableLayout

我目前想要为JPanels构建一个表格类型的布局。 我发现有一个TableLayout for Java但我不知道如何导入它。 另一方面,我发现有一个GridBagLayOut也可以构建一个像layout一样的表。但它似乎更复杂。 任何建议。