[英]how to use GridBagLayout and box in java?
我正在為面板使用GridBagLayout。 我想在下面的圖片中添加componet,但無法將標簽“葯物處方”放在“實習生”標簽下。 有人知道嗎?
GridBagLayout gridbaglayout = new GridBagLayout();
TGridBagConstraints constraints = new TGridBagConstraints();
northPanel = new WebPanel(gridbaglayout);
northPanel.setBorder(new EmptyBorder(5,5,5,5));
// *** PackComboBox row
constraints.setGxGyGwGhWxWyFillAnchor(0, 0, 1, 1, 0.0, 0.0, TGridBagConstraints.HORIZONTAL, TGridBagConstraints.NORTHWEST);
gridbaglayout.setConstraints(PackComboBox, constraints);
northPanel.add(FerPackComboBox);
constraints.setGxGyGwGhWxWyFillAnchor(1, 0, 1, 1, 0.0, 0.0, TGridBagConstraints.HORIZONTAL, TGridBagConstraints.NORTHWEST);
gridbaglayout.setConstraints(approveButton, constraints);
northPanel.add(approveButton);
constraints.setGxGyGwGhWxWyFillAnchor(2, 0, 1, 1, 0.0, 0.0, TGridBagConstraints.HORIZONTAL, TGridBagConstraints.NORTHWEST);
WebLabel internLabel = PrescriptionSummaryUtil.createCustomLabel("Intern",new Font("SansSerif",Font.BOLD,20),Color.decode("#ABB202").darker() );
gridbaglayout.setConstraints(internLabel, constraints);
northPanel.add(internLabel);
constraints.setGxGyGwGhWxWyFillAnchor(5, 0, 1, 1, 0.0, 0.0, TGridBagConstraints.HORIZONTAL, TGridBagConstraints.NORTHWEST);
gridbaglayout.setConstraints(patientInfoBox, constraints);
northPanel.add(patientInfoBox);
// *** Medication PerscriptionLabel row
constraints.setGxGyGwGhWxWyFillAnchor(1, 1, 2, 0, 0.0, 0.0, TGridBagConstraints.NORTHEAST, TGridBagConstraints.NORTHEAST);
WebLabel medicationPerscriptionLabel = PrescriptionSummaryUtil.createCustomLabel("Medication perscription",new Font("SansSerif",Font.BOLD,20),Color.decode("#ABB202").darker() );
gridbaglayout.setConstraints(medicationPerscriptionLabel, constraints);
northPanel.add(medicationPerscriptionLabel);
生成滿足您要求的代碼並不是一件容易的事,因為我對您用來生成約束的API並不陌生...
但是,以下代碼將產生...
public class BadLayout {
public static void main(String[] args) {
new BadLayout();
}
public BadLayout() {
EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
try {
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
} catch (ClassNotFoundException ex) {
} catch (InstantiationException ex) {
} catch (IllegalAccessException ex) {
} catch (UnsupportedLookAndFeelException ex) {
}
JFrame frame = new JFrame("Test");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLayout(new BorderLayout());
frame.add(new LayoutPane());
frame.pack();
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}
});
}
protected class LayoutPane extends JPanel {
public LayoutPane() {
setLayout(new GridBagLayout());
JLabel intern = new JLabel("Intern");
JLabel med = new JLabel("Medication perscription");
JPanel box = new JPanel(new GridBagLayout());
box.setBorder(new LineBorder(Color.BLACK));
GridBagConstraints gbc = new GridBagConstraints();
gbc.weightx = 1;
gbc.weighty = 1;
gbc.fill = GridBagConstraints.BOTH;
gbc.insets = new Insets(40, 40, 40, 40);
box.add(new JLabel("I'm a box"), gbc);
gbc = new GridBagConstraints();
gbc.weightx = 1;
gbc.gridx = 0;
gbc.gridy = 0;
gbc.anchor = GridBagConstraints.NORTH;
add(intern, gbc);
gbc.gridy++;
gbc.weighty = 1;
add(med, gbc);
gbc.weighty = 0;
gbc.weightx = 0;
gbc.gridx = 1;
gbc.gridy = 0;
add(box, gbc);
}
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.