标签: miglayout

如何使用MigLayout?

我阅读了一些有关Java布局管理器的信息,建议是MigLayout.我的问题是,我没有找到任何教程或简单的逐步文档.

所以我想知道这一切是如何运作的,但我不知道如何.

希望,这不是微不足道的.

提前谢谢,guerda

java miglayout layout-manager

29
推荐指数
3
解决办法
3万
查看次数

哪种布局可以做到这一点?

我正在尝试在我的应用程序中布局一些JLabel,如下例所示:

在此输入图像描述

我一直有此JLabel在中间,其他的JLabel数量变量可以通过选择好的数列/行,并在空格设置一些空的JLabel,但我去从1到30我曾尝试网格布局无法获得良好的结果,并且无法找到如何使用MigLayout,任何人都有一个良好的布局解决方案或任何其他解决方案.

PS:我不想展示圆圈,只是为了表明JLabel排成一个圆圈.

java layout swing miglayout grid-layout

21
推荐指数
4
解决办法
1443
查看次数

Java垂直布局?

我需要将JLabel垂直放置在一些JButton上,就像游戏菜单一样.他们都应该集中.我已经下载了MigLayout,但我不确定如何使用它,所以我只想要一种方法来垂直定位我的组件并居中,MigLayout与否.另外,我不想使用IDE GUI设计器.

java layout swing miglayout layout-manager

16
推荐指数
2
解决办法
4万
查看次数

Java:MiGLayout:如何使用`hidemode`?

我开始使用MiGLayout进行GUI设计,我需要的一个功能是根据其他组件的状态显示/隐藏某些组件.

当我注意到MiGLayout支持的一个组件约束时,我自己会编码hidemode.

这是否符合我的想法?如果是这样,假设hidemode已经设置,我该如何触发隐藏/取消隐藏动作?(查看文档后,我能够找到如何设置hidemode,但之后不再使用它)


hidemode

设置组件的隐藏模式.如果已在"隐藏"模式中指定了隐藏模式,则可以通过组件约束覆盖此模式.隐藏模式指定了布局管理器应如何处理不可见的组件.模式是:

0 - 默认.意味着隐藏组件的处理方式与可见组件完全相同.
1 - 组件的大小(如果不可见)将设置为0,0.2
- 组件的大小(如果不可见)将设置为0,0并且间隙也将在其周围设置为0.
3 - 不可见组件根本不会参与布局,例如它不会占用网格单元.
示例:"hidemode 1"

java swing miglayout gui-design

13
推荐指数
1
解决办法
6442
查看次数

MiGLayout是否会包含在Java 7中?

到目前为止我所能找到的是这个(开放的)Sun bug/RFE条目,获得426 506票:

http://bugs.sun.com/view_bug.do?bug_id=6530906

它在RFE列表中位居第三.

很多人都表示它将被包含在Java 7中......但是有没有人有关于是否包含MiGLayout的任何明确信息?


回答

嗯,似乎Chad有一个观点 - 它不在任何地方的官方列表上,时间肯定会消失,所以除非发生重大事件,否则可以说MiGLayout显然不会包含在Java 7中,尽管有426票来自社区.太糟糕了.

java miglayout java-7

11
推荐指数
1
解决办法
1576
查看次数

JScrollpane需要缩小其宽度

我有一个JScrollpane,有一个JPanel在里面(与面板包含一些JLabelS).

我想调整滚动窗格的大小以实际更改其大小(可能低于内部组件的首选大小),而不仅仅是视口的大小.

目标是当用户缩小滚动窗格太小时,内部面板优雅地消失(使用我的miglayout中的特定缩小优先级等).

java swing jscrollpane miglayout

11
推荐指数
1
解决办法
5880
查看次数

如何使用MiGLayout将组件置于包含多个组件的行上

大约一个半月前我开始使用MiGLayout,一切都很简单,效果很好.我还有一个问题,我无法修复.

假设我想要一行在最右侧有两个按钮和一个居中的标题,当我这样做时,标题实际上并没有居中:

("这个是JPanel")

this.add(labelTitle, "split, span, center");
this.add(closeButton, "east");
this.add(mainMenuButton, "east");   
Run Code Online (Sandbox Code Playgroud)

发生的事情是"labelTitle"在放置按钮后的剩余可用空间中居中,但我实际上希望它相对于整个JPanel而不是仅剩余空间居中.

我可以使用哪些参数来获得所需的效果?我知道我可以使用绝对定位,但我不想这样做,因为它在我的案例中首先击败了使用MiGLayout的目的.

java swing miglayout

11
推荐指数
1
解决办法
3517
查看次数

与linewrap = true一起使用时,MigLayout JTextArea不会缩小

如果我像这样使用带有MigLayout的JTextArea:

MigLayout thisLayout = new MigLayout("", "[][grow]", "[]20[]");
   this.setLayout(thisLayout);
   {
jLabel1 = new JLabel();
this.add(jLabel1, "cell 0 0");
jLabel1.setText("jLabel1");
  }
  {
 jTextArea1 = new JTextArea();
this.add(jTextArea1, "cell 0 1 2 1,growx");
jTextArea1.setText("jTextArea1");
jTextArea1.setLineWrap(false);
   } 
Run Code Online (Sandbox Code Playgroud)

然后,当调整窗口大小时,JTextArea会完美地缩小和缩小.当我将linewrap设置为true时,当我再次缩小窗口时,JTextArea不会缩小.我非常感谢任何帮助.谢谢

马塞尔

java swing jtextarea miglayout

9
推荐指数
2
解决办法
4247
查看次数

如何...与MigLayout

我正在尝试创建一个看起来像这样的布局:

+---+--------+---+
|   |        |   |
|   |        |   |
+---+        +---+
|   |        |   |
|   |        |   |
+---+--------+---+
Run Code Online (Sandbox Code Playgroud)

中央细胞应该是其他细胞的两倍.我正在尝试使用这样的代码实现此目的:

    val panel = new JPanel(new MigLayout("debug", "grow","grow" ))
    panel.add(new JPanel)
    panel.add(new JPanel, "span 2 2")
    panel.add(new JPanel, "wrap")
    panel.add(new JPanel)
    panel.add(new JPanel)
Run Code Online (Sandbox Code Playgroud)

但结果我所有的细胞都有相同的宽度:

+----+----+----+
|    |    |    |
|    |    |    |
+----+    +----+
|    |    |    |
|    |    |    |
+----+----+----+
Run Code Online (Sandbox Code Playgroud)

我做错了什么?我正在使用Scala,但我不认为这里存在问题.

更新 也许有人可以解释为什么这不起作用.即使我尝试从QuickStart指南中重现示例,它也不起作用:

alt text http://www.freeimagehosting.net/uploads/d306693273.png

我的代码:

    val panel = new JPanel(new MigLayout("debug", "grow","grow" )) …
Run Code Online (Sandbox Code Playgroud)

java swing scala miglayout

9
推荐指数
1
解决办法
3271
查看次数

Swing - 如何混合JTextField和JTextAreas并具有相同的视觉外观?

我正在使用miglayout创建一个表单,其中有JTextFields(简短的输入答案)以及JTextAreas(更长的答案).问题是双重的.

  1. Scrollpane包装文本区域周围的边框与文本字段的边框不匹配.
  2. textarea/textfield的宽度和位置不同,导致它们无法正确排列.

替代文字http://grab.by/3O0V

从右/左更改为右/填充后: alt文本http://grab.by/3RMk 您可以看到边界排列,但仍然存在差距.我尝试设置novisualpadding但这并没有解决它.

源代码:

package test2;

import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import net.miginfocom.swing.MigLayout;

public class Test extends JPanel {

private static final int NUM_CHARACTERS_WIDTH = 20;
private static final int NUM_ROWS = 5;
public Test() {

    setLayout(new MigLayout(
            "wrap 2",
            // Align text labels on the so their right edge meets left edge of the text fields
            "[right][left]"
            ));

    add(new JLabel("Text field:"));
    add(new JTextField(NUM_CHARACTERS_WIDTH));

    add(new JLabel("No scrollpane text area:")); …
Run Code Online (Sandbox Code Playgroud)

java user-interface swing miglayout

8
推荐指数
2
解决办法
7870
查看次数