Java 网格布局定位
我对GridBagLayout的定位有问题: 我试图在中间(顶部)放置一个标签,但由于我的代码(原因我没有看到),我有以下几点: 我希望标签测试在我的窗口顶部和中间。有人能给我解释一下这个坏位置的原因吗 我的节目:Java 网格布局定位,java,swing,gridbaglayout,Java,Swing,Gridbaglayout,我对GridBagLayout的定位有问题: 我试图在中间(顶部)放置一个标签,但由于我的代码(原因我没有看到),我有以下几点: 我希望标签测试在我的窗口顶部和中间。有人能给我解释一下这个坏位置的原因吗 我的节目: public class Accueil extends JFrame { private JPanel home = new JPanel(); private GridBagConstraints grille = new GridBagConstraints
public class Accueil extends JFrame {
private JPanel home = new JPanel();
private GridBagConstraints grille = new GridBagConstraints();
private JLabel title = new JLabel("Test");
public Accueil() {
home.setLayout(new GridLayout());
init_grille();
init_title();
this.add(home);
this.setSize(600,600);
this.setTitle("Test One");
this.setLocationRelativeTo(null);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
}
private void init_grille() {
grille.fill = GridBagConstraints.BOTH;
grille.weightx = 2;
grille.weighty = 5;
grille.ipady=grille.anchor=GridBagConstraints.CENTER;;
}
private void init_title() {
grille.fill = GridBagConstraints.HORIZONTAL;
grille.gridx = 0;
grille.gridy = 0;
home.add(title,grille);
}
public static void main(String [] args) {
new Accueil();
}
}
这无助于:
home.setLayout(new GridLayout());
您可能想要:
home.setLayout(new GridBagLayout());
此外,这些变化应该有效:
private void init_title() {
grille.fill = GridBagConstraints.NONE;
grille.gridx = 0;
grille.gridy = 0;
grille.anchor = GridBagConstraints.NORTH;
home.add(title,grille);
}
这无助于:
home.setLayout(new GridLayout());
您可能想要:
home.setLayout(new GridBagLayout());
此外,这些变化应该有效:
private void init_title() {
grille.fill = GridBagConstraints.NONE;
grille.gridx = 0;
grille.gridy = 0;
grille.anchor = GridBagConstraints.NORTH;
home.add(title,grille);
}
您使用的不是GridBagLayout,而是GridBagLayout。如果您打算使用GridBagLayout,您需要更改标记您不是使用GridBagLayout,而是使用GridBagLayout。如果您打算使用GridBagLayout,您需要在GridBagLayout和GridBagLayout之间更改标记,哪一个是“最佳”?我的意思是“最好”在不同的元素的位置上,它们不是最好的。当您需要一个简单的网格时,GridLayout最适合并且更易于使用。当你需要更复杂的东西时,GridLayout做不到,GridBagLayout也可以,但代价是更高的复杂性。因为我们不知道你的最终目标是什么组件,或者你想把它们放在哪里,建议首选的布局经理只是猜测。+1但是(我反对把简单的事情复杂化)OPs
我试着把它们放在中间(顶部)一个标签,但是
谈论SwingConstants.CENTER或JLabel.CENTER,而不是在这种情况下打扰LayoutManager,也不知道XXX布局是否比其他更好谢谢大家的回答。这对我帮助很大:)在GridBagLayout和GridLayout之间,哪一个是“最好的”?我的意思是“最好”在不同的元素的位置上,它们不是最好的。当您需要一个简单的网格时,GridLayout最适合并且更易于使用。当你需要更复杂的东西时,GridLayout做不到,GridBagLayout也可以,但代价是更高的复杂性。因为我们不知道你的最终目标是什么组件,或者你想把它们放在哪里,建议首选的布局经理只是猜测。+1但是(我反对把简单的事情复杂化)OPs我试着把它们放在中间(顶部)一个标签,但是
谈论SwingConstants.CENTER或JLabel.CENTER,而不是在这种情况下打扰LayoutManager,也不知道XXX布局是否比其他更好谢谢大家的回答。这对我帮助很大:)