サンプルプログラムの最初のタブ:最初の行では、コンポーネントはセル内でrとlで揃えられています。2行目では、セルがスパンされて右に押されています。
最初の行の余分なスペースはすべて、「20」というラベルの付いたコンポーネントを含むセル0,0に割り当てられます。
タブ「2」は、pushxを使用して状況を改善します。ウィジェットは中央に表示されましたが、それは私が望んでいることではありません。
しかし、セル0、1(「30」というラベルの付いたコンポーネントを含むセル)にすべての余分なスペースを与えるにはどうすればよいですか?達成したいことの画像を投稿しようとしましたが、システムはそれを許可しませんでした。うまくいけば、私の口頭での説明は十分に明確です。
package test1;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTabbedPane;
import javax.swing.JTextField;
import javax.swing.SwingUtilities;
import net.miginfocom.swing.MigLayout;
public class Main extends JTabbedPane {
public Main() {
addTab("One", createPanel1());
addTab("Two", createPanel2());
}
public static void main(String[] args) {
final JFrame frame = new JFrame("Test MigLayout");
Main main = new Main();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setContentPane(main);
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
frame.pack();
frame.setVisible(true);
frame.setBounds(200, 200, 800, 500);
}
});
}
private JPanel createPanel1() {
JPanel panel = new JPanel(new MigLayout("hidemode 3, debug", "[r][l]"));
JTextField textField1 = new JTextField("20", 20);
JTextField textField2 = new JTextField("30", 30);
JButton button = new JButton("Button");
panel.add(textField1);
panel.add(textField2, "wrap");
panel.add(button, "span 2, pushx");
return (panel);
}
private JPanel createPanel2() {
JPanel panel = new JPanel(new MigLayout("hidemode 3, debug", "[r][l]"));
JTextField textField1 = new JTextField("20", 20);
JTextField textField2 = new JTextField("30", 30);
JButton button = new JButton("Button");
panel.add(textField1);
panel.add(textField2, "pushx, wrap");
panel.add(button, "span 2, pushx");
return (panel);
}
}