Có gì đó không có ở đây. Tôi đang cố gắng để có được nút ngoài cùng bên phải (có nhãn "trợ giúp" trong ví dụ bên dưới) để được căn phải vào JFrame và các nút lớn để có chiều rộng của chúng được gắn với JFrame nhưng ít nhất là 180px mỗi. Tôi đã nhận được hạn chế về nút lớn để hoạt động, nhưng không phải là căn chỉnh đúng.miglayout: không thể căn phải làm việc
Tôi nghĩ sự liên kết ngay được thực hiện bằng cách gapbefore push
(như trong this other SO question), nhưng tôi không thể hình dung nó ra.
Có ai có thể giúp tôi không?
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import net.miginfocom.swing.MigLayout;
public class RightAlignQuestion {
public static void main(String[] args) {
JFrame frame = new JFrame("right align question");
JPanel mainPanel = new JPanel();
frame.setContentPane(mainPanel);
mainPanel.setLayout(new MigLayout("insets 0", "[grow]", ""));
JPanel topPanel = new JPanel();
topPanel.setLayout(new MigLayout("", "[][][][]", ""));
for (int i = 0; i < 3; ++i)
topPanel.add(new JButton("button"+i), "");
topPanel.add(new JButton("help"), "gapbefore push, wrap");
topPanel.add(new JButton("big button"), "span 3, grow");
JPanel bottomPanel = new JPanel();
bottomPanel.setLayout(new MigLayout("",
"[180:180:,grow][180:180:,grow]","100:"));
bottomPanel.add(new JButton("tweedledee"), "grow");
bottomPanel.add(new JButton("tweedledum"), "grow");
mainPanel.add(topPanel, "grow, wrap");
mainPanel.add(bottomPanel, "grow");
frame.pack();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
}
Tôi không biết đủ về MigLayout để trả lời câu hỏi này, nhưng hãy thử đặt đường viền trên topPanel để đảm bảo đường viền trên thực tế rộng như cửa sổ. Nếu không, điều đó sẽ giải thích tại sao Trợ giúp không được căn phải. –