- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
代码如下:
import javax.swing.*;
import java.awt.event.*;
import java.awt.*;
public class TestGrid {
public static void main(String[] args) {
JFrame frame = new JFrame("Colored Trails");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel mainPanel = new JPanel();
mainPanel.setLayout(new BoxLayout(mainPanel, BoxLayout.Y_AXIS));
JPanel panel = new JPanel();
panel.setLayout(new GridLayout(4, 9));
panel.setMaximumSize(new Dimension(9*30-20,4*30));
JButton btn;
for (int i=1; i<=4; i++) {
for (int j=1; j<=4; j++) {
btn = new JButton();
btn.setPreferredSize(new Dimension(30, 30));
panel.add(btn);
}
btn = new JButton();
btn.setPreferredSize(new Dimension(30, 10));
panel.add(btn);
for (int j=1; j<=4; j++) {
btn = new JButton();
btn.setPreferredSize(new Dimension(30, 30));
panel.add(btn);
}
}
mainPanel.add(panel);
frame.add(mainPanel);
frame.setSize(450,950);
frame.setVisible(true);
}
}
我想有一个 4 行 9 列的按钮表。中间的列应该比其他列窄。我试过 Dimension(30, 10)
和 Dimension(30, 10)
都对中间列的宽度没有影响。为什么?
最佳答案
布局管理员可以随意忽略首选尺寸。具体来说,GridLayout
将始终使网格中的每个单元格大小完全相同(因此它是一个非常无用的布局管理器)。
您必须使用不同的布局管理器,例如嵌套的 BoxLayout
或 GroupLayout
。
关于java - 为什么 setPreferredSize 不改变按钮的大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2546079/
这是我第一次尝试使用 Java,所以请放轻松。我查看了其他 JFrame 问题,但我一直无法找到可行的解决方案。 出于某种原因,我无法使 setPreferredSize 或 setSize 工作。
为什么 p1.setPreferredSize(new Dimension(200,200)) 显示错误。它说非法开始类型 class Menu extends JFrame { JPane
我有一个包含多个面板的窗口。我无权访问窗口代码。 (我只能修改面板的代码。) 我从面板中删除了几个组件。窗口已缩小其大小。但是窗口太小,无法正确显示所有内容。 我添加了行 setPreferredSi
代码: import java.awt.Dimension; import javax.swing.*; public class Game extends JFrame { private
我正在尝试正确调整 JPanel 的大小,使其完全适合渲染的 8 x 8 棋盘。当我使用绘画程序放大时,我注意到宽度和高度上都添加了两个额外的像素...... 这还不错,但是当我用其他 JPanel(
我最初使用的是 setSize,但由于 java 边框和标题空间,这导致屏幕内容略大于屏幕。所以我使用了 setpreferredSize,现在屏幕尺寸有点太大了。在我的内容的右侧和底部留一个空格。
根据以前的经验,每个人都会说“不要使用那些 setXxxSize 方法!使用布局管理器!”但是,在这种情况下我该怎么办? import java.awt.*; import javax.swing.*
代码如下: import javax.swing.*; import java.awt.event.*; import java.awt.*; public class TestGrid {
我正在用 Java 创建一个 Tic Tac Toe 游戏,我似乎陷入了一个我无法摆脱的问题:(。我无法调整我的按钮大小。我尝试了 setSize 和 setPreferredSize,但似乎不起作用
根据我收到的答案,我现在采用不同的方式进行此操作。 是否有任何方法可以重写 setPreferredSize() 和 getPreferredSize() ,以便它实际上将组件的大小设置为高于实际输入
我正在尝试构建自己的 JComponent,但一开始并不理想。我可以创建一个对象,然后将其添加到 JFrame 或 JPanel,它将添加到组件列表中。我不知道如何设置PreferredSize()。
在布局管理器中,当我使用 setPreferedSize 时,它增加了 JLabel 的大小,但在之后仅显示一个单词,例如 (JLabel = Name)使用setPreferedSize JLabe
我正在使用 JScrollPane 并在 viewportView.doLayout 内调用 viewportView.setPreferredSize。但这似乎是错误的,因为 JScrollPane
昨天我在向 JScrollPane 添加 JTable 和 JPanel(其中包含 JButton)时出错。 JButton 固定在表格的底部,单击时它会向 JTable 添加一行。 问题是如果表格变
我已经使用 View 过滤方法成功过滤了一个 JTree(在树渲染中,将首选组件大小设置为 0 以过滤掉项目)。请参阅 [ Filtering on a JTree 我有一个包含超过 100 万个树项
我在这里读了一些帖子,我开始了解为什么有些人会这样做 @Override public Dimension getPreferredSize() { return new Dimension(
已关闭。此问题需要 debugging details 。目前不接受答案。 编辑问题以包含 desired behavior, a specific problem or error, and the
我想要一个串联的 JPanel 的“列表”,其中每个单元格都有相应的 JPanel 的大小。例如: 在此示例中,Panel1 的 setPreferredSize 小于 Panel2 的 setPre
所以我一直在尝试为牙医创建这个简单的用户界面,当我在标题下添加顶部菜单时,我注意到“setPreferredSize”没有按预期工作。基本上我希望菜单水平扩展,所以我使用 GridBagLayout
我有一个 JPanel (imagePanel),可以在其上显示图像。我在另一个 JPanel (scrollPanel) 中有 imagePanel,并使用 GridBagLayout 默认约束将其
我是一名优秀的程序员,十分优秀!