问题标签 [grid-layout]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
43551 浏览

java - Java Swing - JPanel 和 GridLayout 边距/填充

我正在用 Java 构建一个国际象棋游戏,我目前在使用 Swing 完全按照我想要的方式获取 GUI 时遇到了一些麻烦。我正在使用 aGridLayout来组织一个 8x8ChessButton的网格(它覆盖了 ,JButton以便我可以在其中存储额外的信息,例如坐标)。最初,ChessButton除非我将鼠标悬停在它们上,否则 s 不会出现,但我通过将每个按钮ChessButton放在一个单独的内部JPanel并将每个按钮设置setPreferredSize()为设定的高度和宽度来解决这个问题。

现在,我的问题是每个按钮上方(和/或下方?)似乎有一个小的边距或填充。我已经确定为 设置setHgap(0)setVgap(0)GridLayout所以我很确定神秘的边距来自按钮或JPanels。但是,我似乎无法摆脱它们,ChessButton每当我鼠标移动它们时,它们似乎都会导致它们上下移动一点。

我意识到这个问题的描述可能有点难以形象化,所以我截取了一张截图(使用JButtons 而不是ChessButtons 所以差距更容易识别):http: //img3.imageshack.us/img3/ 6656/jbuttonmargins.png

这是我用来初始化每个的代码ChessButton

那么,我怎样才能摆脱按钮之间的这些垂直空间呢?我对 Swing 比较陌生,所以如果答案非常明显,我很抱歉,但如果有人提供任何帮助,我将不胜感激!提前致谢!

0 投票
1 回答
9557 浏览

java - 在 GridLayout 中更新网格

我有一组通过 JPanel 中的 GridLayout 布局的对象。我需要能够在数组的索引中重新创建对象,并让 GridLayout 更新以反映这一点。到目前为止,我无论如何都找不到“刷新”或重绘 GridLayout。是否可以在不创建整个 GridLayout 或 JPanel 的情况下刷新 GridLayout?假设我无权访问 JFrame。

0 投票
2 回答
3118 浏览

wpf - 如何将通过模板创建的单独网格沿其列/行对齐?

我认为在这种情况下,一张图值一千字:

替代文字

XAML:

ps - 我不想为第一列设置一个特定的,而是给它它需要的最大值。

更新: 我试过 ColinE 的链接并做到了:

但这对我不起作用。

0 投票
4 回答
3403 浏览

java - 如何使用 Java Swing 布局整齐地缩进一些组件

使用 Swing,在复选框或单选按钮下缩进某些组件的最佳方法是什么?我需要以 Firefox 3.6 的 Options->Privacy 对话框的样式制作一些东西,其中一些复选框缩进在“主”复选框下。我可以使用任何标准的 AWT/Swing 布局,包括 GroupLayout。我还可以使用 JGoodies FormLayout。起初我尝试在 FormLayout 中使用 setLeadingColumn 偏移量,但它似乎无法正常工作,除非我在分隔符下缩进。也许我只是做错了?

有没有像 SWT GridLayout 的 Horizo​​ntalIndent 设置的东西?那将是完美的。

我正在使用 JDK1.6.0_23。

0 投票
3 回答
20332 浏览

wpf - WPF 中有 RowSpan="All" 吗?

GridSplitter我在网格中的 3 行中创建一个,如下所示:

但是,可以想象我可能会在稍后阶段向我的网格添加另一行,并且我真的不想返回并更新我的所有行跨度。

我的第一个猜测是Grid.RowSpan="*",但这不能编译。

0 投票
1 回答
1818 浏览

java - java, swing, Gridlayout问题

我有一个带有 GridLayout 的面板

但是当我试图运行程序时,只显示了 100 个按钮中的第一个按钮。此外,其余的只有当我将光标移到它们上时才会出现。它出什么问题了?

这是整个类(Life.CELLS=10 和 CellButton 是扩展 JButton 的类)

这是 CellButton 的代码

0 投票
2 回答
4362 浏览

java - 在 GridLayout 中获取 JPanel 的位置/索引?

我正在尝试遵循 MVC 设计,目前在我的 Controller 类中创建了一个 MouseAdapter。我的一个模型类中有一个与 GridLayout 大小相同的数组。因此,当有人单击网格中某处的 JPanel 时,我会让 MouseAdapter 通知模型并执行某些操作。JPanels 属于另一个类,View。

但是为此我需要那个特定JPanel的索引/位置,有什么方法可以得到它吗?

我检查了 MouseEvent 的 GetX 和 GetY 方法,其中状态:

GetX - 返回事件相对于源组件的水平 x 位置。

Get Y - 返回事件相对于源组件的垂直 y 位置。

相对于源组件,是不是说JPanel的左上角是0、0?那我怎么知道 GridLayout 中的哪些面板被点击了呢?

0 投票
2 回答
1654 浏览

java - 从 gridLayout 中获取一个按钮

如果我的 gridLayout 中有元素,我可以获得对该对象的引用,如果是,我需要使用哪个函数?对 gridLayout 中的对象执行一些操作是个好主意吗?还是有其他更好的语言习语?

0 投票
4 回答
4477 浏览

java - Java 中的 GridLayout 帮助

我有一个带有以下代码的JPanel:

我想知道,如何让 JTextField 在 GridLayout 上占据两个空间,同时让两个按钮通过在同一行上各占据一个空间来共享一行?

0 投票
0 回答
1129 浏览

java - Java:GridLayout在调整大小完成之前调用layoutContainer

我有一个使用 GridLayout 管理器的简单 gui 容器。我添加了两个从 JComponent 继承的组件,并使用 paintComponent 在屏幕上绘制了一些东西。

现在我添加了 componentListener 以使用 GridLayout 管理器调整 gui 的大小。调整大小后,这两个组件仍然很小,所以没有调整大小。

我通过创建一个简单的 GridLayout 副本来检查这一点,打印 methode layoutContainer 从父容器获取的大小,以查看父容器是否具有新大小(在调整大小事件之后)。它打印的尺寸仍然很小,变化很小,但不是正确的。

我在 layoutContainer 中打印大小,并使用简单的计时器每秒打印父 gui 的大小。

我意识到在 Timer 打印正确的尺寸 (1600x1099) 之前,我的 GridLayout 管理器中的 layoutContainer 会以旧尺寸调用。

我认为 GridLayout 总是根据行和列配置自动调整其所有组件的大小。但似乎没有,layoutContainer 方法被调用得太早了。

有什么方法可以使用 GridLayout 管理器来解决这个问题,还是我必须自己调整组件的大小?

如何检查 LayoutManager 中调用 layoutContainer 方法的时间和内容?

这是一个正确调整大小的模块的代码,但其子类的子组件未正确调整大小(希望它对您来说代码不多):

信息:我在一个 java 文件中为这个模块编写了所有需要的类,所以我在一个 java 文件中拥有我需要的一切。