Java 如何使用MigLayout在面板上绘制分隔符
这是一个新手问题。我想知道如何在面板的宽度上从标签的末端画一个分隔符 下面是我的示例代码:Java 如何使用MigLayout在面板上绘制分隔符,java,swing,miglayout,Java,Swing,Miglayout,这是一个新手问题。我想知道如何在面板的宽度上从标签的末端画一个分隔符 下面是我的示例代码: package com.ndh.swingjunk; import java.awt.*; import javax.swing.*; import net.miginfocom.swing.MigLayout; class MyJFrame extends JFrame { public MyJFrame() { super(); setDefaultClos
package com.ndh.swingjunk;
import java.awt.*;
import javax.swing.*;
import net.miginfocom.swing.MigLayout;
class MyJFrame extends JFrame {
public MyJFrame() {
super();
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JLabel label = new JLabel("foo");
label.setFont(new Font("Tahoma", Font.BOLD, 11));
JSeparator separator = new JSeparator();
JLabel anotherLabel = new JLabel("some other label");
anotherLabel.setFont(new Font("Tahoma", Font.PLAIN, 11));
JButton button1 = new JButton("button 1");
JButton button2 = new JButton("button 2");
JPanel panel = new JPanel(new MigLayout());
panel.add(label);
panel.add(separator, "growx, wrap");
panel.add(anotherLabel);
panel.add(button1);
panel.add(button2);
getContentPane().add(panel);
pack();
}
}
public class SeparatorLayoutQuestion {
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
@Override public void run() {new MyJFrame().setVisible(true);}});}}
结果如下:
这太差劲了。我希望分隔符从“Foo”的末端延伸到面板的末端,一直延伸到按钮2。尝试添加
"span 3"
对于第一个标签以下是对我有效的方法,我必须使用“拆分”,以便标签和分隔符可以共享同一单元格:
JPanel panel = new JPanel(new MigLayout());
panel.add(label, "split 2, span");
panel.add(separator, "growx, wrap");
panel.add(anotherLabel);
panel.add(button1);
panel.add(button2);