问题标签 [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.
java - Java Swing - JPanel 和 GridLayout 边距/填充
我正在用 Java 构建一个国际象棋游戏,我目前在使用 Swing 完全按照我想要的方式获取 GUI 时遇到了一些麻烦。我正在使用 aGridLayout
来组织一个 8x8ChessButton
的网格(它覆盖了 ,JButton
以便我可以在其中存储额外的信息,例如坐标)。最初,ChessButton
除非我将鼠标悬停在它们上,否则 s 不会出现,但我通过将每个按钮ChessButton
放在一个单独的内部JPanel
并将每个按钮设置setPreferredSize()
为设定的高度和宽度来解决这个问题。
现在,我的问题是每个按钮上方(和/或下方?)似乎有一个小的边距或填充。我已经确定为 设置setHgap(0)
和setVgap(0)
,GridLayout
所以我很确定神秘的边距来自按钮或JPanel
s。但是,我似乎无法摆脱它们,ChessButton
每当我鼠标移动它们时,它们似乎都会导致它们上下移动一点。
我意识到这个问题的描述可能有点难以形象化,所以我截取了一张截图(使用JButton
s 而不是ChessButton
s 所以差距更容易识别):http: //img3.imageshack.us/img3/ 6656/jbuttonmargins.png
这是我用来初始化每个的代码ChessButton
:
那么,我怎样才能摆脱按钮之间的这些垂直空间呢?我对 Swing 比较陌生,所以如果答案非常明显,我很抱歉,但如果有人提供任何帮助,我将不胜感激!提前致谢!
java - 在 GridLayout 中更新网格
我有一组通过 JPanel 中的 GridLayout 布局的对象。我需要能够在数组的索引中重新创建对象,并让 GridLayout 更新以反映这一点。到目前为止,我无论如何都找不到“刷新”或重绘 GridLayout。是否可以在不创建整个 GridLayout 或 JPanel 的情况下刷新 GridLayout?假设我无权访问 JFrame。
wpf - 如何将通过模板创建的单独网格沿其列/行对齐?
我认为在这种情况下,一张图值一千字:
XAML:
ps - 我不想为第一列设置一个特定的,而是给它它需要的最大值。
更新: 我试过 ColinE 的链接并做到了:
但这对我不起作用。
java - 如何使用 Java Swing 布局整齐地缩进一些组件
使用 Swing,在复选框或单选按钮下缩进某些组件的最佳方法是什么?我需要以 Firefox 3.6 的 Options->Privacy 对话框的样式制作一些东西,其中一些复选框缩进在“主”复选框下。我可以使用任何标准的 AWT/Swing 布局,包括 GroupLayout。我还可以使用 JGoodies FormLayout。起初我尝试在 FormLayout 中使用 setLeadingColumn 偏移量,但它似乎无法正常工作,除非我在分隔符下缩进。也许我只是做错了?
有没有像 SWT GridLayout 的 HorizontalIndent 设置的东西?那将是完美的。
我正在使用 JDK1.6.0_23。
wpf - WPF 中有 RowSpan="All" 吗?
GridSplitter
我在网格中的 3 行中创建一个,如下所示:
但是,可以想象我可能会在稍后阶段向我的网格添加另一行,并且我真的不想返回并更新我的所有行跨度。
我的第一个猜测是Grid.RowSpan="*"
,但这不能编译。
java - java, swing, Gridlayout问题
我有一个带有 GridLayout 的面板
但是当我试图运行程序时,只显示了 100 个按钮中的第一个按钮。此外,其余的只有当我将光标移到它们上时才会出现。它出什么问题了?
这是整个类(Life.CELLS=10 和 CellButton 是扩展 JButton 的类)
这是 CellButton 的代码
java - 在 GridLayout 中获取 JPanel 的位置/索引?
我正在尝试遵循 MVC 设计,目前在我的 Controller 类中创建了一个 MouseAdapter。我的一个模型类中有一个与 GridLayout 大小相同的数组。因此,当有人单击网格中某处的 JPanel 时,我会让 MouseAdapter 通知模型并执行某些操作。JPanels 属于另一个类,View。
但是为此我需要那个特定JPanel的索引/位置,有什么方法可以得到它吗?
我检查了 MouseEvent 的 GetX 和 GetY 方法,其中状态:
GetX - 返回事件相对于源组件的水平 x 位置。
Get Y - 返回事件相对于源组件的垂直 y 位置。
相对于源组件,是不是说JPanel的左上角是0、0?那我怎么知道 GridLayout 中的哪些面板被点击了呢?
java - 从 gridLayout 中获取一个按钮
如果我的 gridLayout 中有元素,我可以获得对该对象的引用,如果是,我需要使用哪个函数?对 gridLayout 中的对象执行一些操作是个好主意吗?还是有其他更好的语言习语?
java - Java 中的 GridLayout 帮助
我有一个带有以下代码的JPanel:
我想知道,如何让 JTextField 在 GridLayout 上占据两个空间,同时让两个按钮通过在同一行上各占据一个空间来共享一行?
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 文件中拥有我需要的一切。