我已经尝试了很多来创建以下布局,但我无法做到。我尝试使用各种约束,但我仍然无法做到。
我想要以下布局。
__________________________
| JLABEL | J |
|_________________| B |
| JBUTTON | T |
|_________________|__N___|
JBTN is JBUTTON.
我得到的结果是他们都只是在一条线上。或者有时候JBTN会出现在左下角,JLABEL& JBUTTON一行。
总的来说,我无法获得所需的布局。 任何人都可以在这里帮忙或提供一些建议如何解决它?
答案 0 :(得分:0)
这看起来像你想要的布局:
import java.awt.EventQueue;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JLabel;
import javax.swing.JButton;
import java.awt.GridBagLayout;
import java.awt.GridBagConstraints;
import java.awt.Insets;
public class Answer extends JFrame {
private JPanel contentPane;
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
Answer frame = new Answer();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the frame.
*/
public Answer() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 450, 300);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
GridBagLayout gbl_contentPane = new GridBagLayout();
gbl_contentPane.columnWidths = new int[]{302, 89, 0};
gbl_contentPane.rowHeights = new int[]{115, 128, 0};
gbl_contentPane.columnWeights = new double[]{0.0, 0.0, Double.MIN_VALUE};
gbl_contentPane.rowWeights = new double[]{0.0, 0.0, Double.MIN_VALUE};
contentPane.setLayout(gbl_contentPane);
JLabel lblNewLabel = new JLabel("New label");
GridBagConstraints gbc_lblNewLabel = new GridBagConstraints();
gbc_lblNewLabel.fill = GridBagConstraints.BOTH;
gbc_lblNewLabel.insets = new Insets(0, 0, 5, 5);
gbc_lblNewLabel.gridx = 0;
gbc_lblNewLabel.gridy = 0;
contentPane.add(lblNewLabel, gbc_lblNewLabel);
JButton btnNewButton = new JButton("New button");
GridBagConstraints gbc_btnNewButton = new GridBagConstraints();
gbc_btnNewButton.anchor = GridBagConstraints.WEST;
gbc_btnNewButton.fill = GridBagConstraints.VERTICAL;
gbc_btnNewButton.gridheight = 2;
gbc_btnNewButton.gridx = 1;
gbc_btnNewButton.gridy = 0;
contentPane.add(btnNewButton, gbc_btnNewButton);
JButton btnNewButton_1 = new JButton("New button");
GridBagConstraints gbc_btnNewButton_1 = new GridBagConstraints();
gbc_btnNewButton_1.fill = GridBagConstraints.BOTH;
gbc_btnNewButton_1.insets = new Insets(0, 0, 0, 5);
gbc_btnNewButton_1.gridx = 0;
gbc_btnNewButton_1.gridy = 1;
contentPane.add(btnNewButton_1, gbc_btnNewButton_1);
}
}