一段时间以来,我一直面临的问题是,每当我向JPanel添加JButton时,我使用的任何其他JButton都会朝着这个方向移动。
以下是第一个代码:
//imports
import java.awt.*;
import javax.swing.*;
public class Example {
public static void main(String[] args) {
// Create the frame and panel and the Grid Bag Constraints
JFrame frame = new JFrame();
JPanel panel = new JPanel(new GridBagLayout());
GridBagConstraints c = new GridBagConstraints();
// Create ONE JButton
JButton button1 = new JButton("Button1");
// Set the frame's properties
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(600, 600);
frame.getContentPane().add(panel, BorderLayout.NORTH);
frame.setVisible(true);
// Set Basic Grid Bag Constraints settings.
c.gridx = 0;
c.gridy = 0;
// Set the Insets
c.insets = new Insets(0, 0, 0, 0);
// Add the Grid Bag Constraints and button1 the panel
panel.add(button1, c);
}
}
一切似乎都正常吗?如果我们添加第二个按钮:
//imports
import java.awt.*;
import javax.swing.*;
public class Example {
public static void main(String[] args) {
// Create the frame and panel and the Grid Bag Constraints
JFrame frame = new JFrame();
JPanel panel = new JPanel(new GridBagLayout());
GridBagConstraints c = new GridBagConstraints();
// Create TWO JButtons
JButton button1 = new JButton("Button1");
JButton button2 = new JButton("Button2");
// Set the frame's properties
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(600, 600);
frame.getContentPane().add(panel, BorderLayout.NORTH);
frame.setVisible(true);
// Set Basic Grid Bag Constraints settings.
c.gridx = 0;
c.gridy = 0;
// Set the Insets
c.insets = new Insets(0, 0, 0, 0);
// Add the Grid Bag Constraints and button1 the panel
panel.add(button1, c);
// Set the Insets
c.insets = new Insets(500, 0, 0, 0);
// Add the Grid Bag Constraints and button2 the panel
panel.add(button2, c);
}
}
然后按钮1向下移动到按钮2。有人知道为什么和/或修复它吗?
编辑:我想问的是,如何在不移动其他按钮的情况下添加另一个按钮。
我不知道你的意图是什么。你只是说它没有达到你的期望。所以我不能给你一个确切的解决方案。
在任何情况下,首先阅读Swing教程中关于如何使用GridBagLayout进行工作示例的部分。
我看到两个问题:
>
您永远不会更改gridx/y值。这两个组件都被添加到网格(0,0),这不是GridBagLayout应该如何工作。每个组件都需要添加到不同的单元格中。
插入(500,…)的值看起来很大。
问题内容: 需要一个简单的Swing代码来演示如何使用tablecellrenderer和tablecelleditor在Jtable的列中添加按钮。 问题答案: 将按钮添加到 Sample ,这是管理列和行,设置组件 Sample ,它管理在组件上单击鼠标的时间 示例JTable单元格渲染器,管理单元格组件
我正在尝试用java制作一个小游戏来完成任务。 我们需要在JFrame窗口中有一个可调整大小的网格,其中包含nxn(n=一些合理的数字,如5或7)字段(在这种情况下,每个字段都是一个按钮),在该字段上有以下规则: 中间的按钮是一个“黑洞”,有两个玩家。每个玩家有N-1艘飞船供他们使用,他们必须将它们移入黑洞。第一个做到这一点的玩家获胜。两个玩家的飞船都是对角排列的,朝向和远离中间(黑洞)。 诀窍是
问题内容: 在NetBeans中,我已经使用GUI编辑器制作了一个JFrame,并且在框架中放置了一个JPanel。目前,我正在尝试在类构造时在面板中创建一个新按钮。这是我的代码,但似乎无法正常工作。(第一行显示该按钮,其他行尝试显示该按钮。) 我整夜都在搜寻Google,但似乎无法正常运作。 问题答案: 有时候,您看不到按钮是布局管理器问题(因为您没有为布局管理器设置正确的属性)。您可以通过禁用
我正在编写一个Java应用程序。我有多个按钮。每个按钮的代码完全相同,因此我只需要一个ActionListener。但是在这个ActionListener中,我需要为相应的按钮调用“setText()”。这可能吗?我将如何实现这一点? 我尝试了以下方法: 但这不起作用——它说“找不到符号”。 提前感谢;)
介绍 (Introduction) JButton类是一个按钮的实现。 此组件具有标签,并在按下时生成事件。 它也可以有一个图像。 Class 声明 (Class Declaration) 以下是javax.swing.JButton类的声明 - public class JButton extends AbstractButton implements Accessible
我有这个actionlistener添加到一个按钮: 这是jPanel和jbutton的代码: 我怎样才能让它删除jframe的所有组件,除了名为buttonPanel的jpanel?