我正在使用MigLayout(我非常喜欢它)。但是我在JTextArea前面遇到了标签问题。 我已阅读有关“baseline”关键字的信息。但这并不能与“成长”结合起来。
这是一个显示问题的示例。 我希望标签在顶部对齐(与JTextArea第一行的位置相同)。
有什么想法吗?
public class MigRunner {
public static void main( String[] args ) {
SwingUtilities.invokeLater( new Runnable() {
@Override
public void run() {
new MigRunner().run();
}
} );
}
@UiThread
private void run() {
JFrame frame = new JFrame();
Container contentPane = frame.getContentPane();
contentPane.setLayout( new MigLayout("wrap 2, fill, debug", "[][grow]", "[grow]") );
{
JLabel name = new JLabel( "Description" );
contentPane.add( name, "baseline" );
JTextArea textArea = new JTextArea();
JScrollPane scrollPane = new JScrollPane( textArea );
contentPane.add( scrollPane, "grow, baseline" );
name.setLabelFor( textArea );
}
frame.setDefaultCloseOperation( WindowConstants.DISPOSE_ON_CLOSE );
frame.setSize( 400, 300 );
frame.setLocationRelativeTo( null );
frame.setVisible( true );
}
}
答案 0 :(得分:0)
也许你需要对齐约束:
JLabel name = new JLabel("Description");
contentPane.add(name, "aligny top");
在Jeremias发表评论之前,我没有看到文本基线之间的3像素差距。好吧,我没有一个很好的解决方案,但这是Jeremias“gaptop 3”解决方案的另一个想法:
JTextArea name = new JTextArea("Description");
name.setEditable(false);
contentPane.add(new JScrollPane(name), "aligny top");