如何根据 window 的大小调整 JPanel 的大小
How to adapt the size of a JPanel with the size of the window
我是 java 的新手,作为一个项目,我们必须编写一个计算器
反向波兰表示法。
我们在 window 的显示中遇到了问题,因为当我们扩展 window[=14 时,包含 2 个 JPanel Chiffres 和 Operateurs 的 JPanel Bas 的大小没有改变=]
JFrame Fenetre = new JFrame ("Calculatrice");
JButton Bouton0 = new JButton("0");
JButton Bouton1 = new JButton("1");
JButton Bouton2 = new JButton("2");
JButton Bouton3 = new JButton("3");
JButton Bouton4 = new JButton("4");
JButton Bouton5 = new JButton("5");
JButton Bouton6 = new JButton("6");
JButton Bouton7 = new JButton("7");
JButton Bouton8 = new JButton("8");
JButton Bouton9 = new JButton("9");
JButton BoutonVirgule = new JButton(",");
JButton BoutonSigne = new JButton("+/-");
JButton BoutonAddition = new JButton("+");
JButton BoutonSoustraction = new JButton("-");
JButton BoutonMultiplication = new JButton("x");
JButton BoutonDivision = new JButton("/");
JButton BoutonPush = new JButton("PUSH");
JButton BoutonSwap = new JButton("<->");
JPanel Chiffres = new JPanel();
Chiffres.setLayout(new GridLayout(4,3));
Chiffres.add(Bouton7);
Chiffres.add(Bouton8);
Chiffres.add(Bouton9);
Chiffres.add(Bouton4);
Chiffres.add(Bouton5);
Chiffres.add(Bouton6);
Chiffres.add(Bouton1);
Chiffres.add(Bouton2);
Chiffres.add(Bouton3);
Chiffres.add(BoutonVirgule);
Chiffres.add(Bouton0);
Chiffres.add(BoutonSigne);
JPanel Cases = new JPanel();
Cases.setLayout(new GridLayout(5,1));
Cases.add(Ligne1);
Cases.add(Ligne2);
Cases.add(Ligne3);
Cases.add(Ligne4);
Cases.add(Ligne5);
JPanel Operateurs = new JPanel();
Operateurs.setLayout(new GridLayout(3,2));
Operateurs.add(BoutonAddition);
Operateurs.add(BoutonSoustraction);
Operateurs.add(BoutonMultiplication);
Operateurs.add(BoutonDivision);
Operateurs.add(BoutonSwap);
Operateurs.add(BoutonPush);
JPanel Bas = new JPanel();
Bas.add(Chiffres);
Bas.add(Operateurs);
Fenetre.getContentPane().add(Bas,BorderLayout.CENTER);
Fenetre.getContentPane().add(Cases,BorderLayout.NORTH);
Fenetre.pack();
Fenetre.setVisible(true);
Fenetre.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
事实上,我想混合这两种情况,因为 Operateurs 的位置在第二张图片中没有保留(Operateurs Panel 应该比 Chiffres Panel 小,如图 1 所示)
没有向 Bas 添加 GridLayout 的照片
将 GridLayout 添加到 Bas 的照片
Black=Cases Green=Bas Pink=Chiffres Cyan=Operateurs
非常感谢您的帮助!
我会替换这些:
Fenetre.getContentPane().add(Bas,BorderLayout.SOUTH);
Fenetre.getContentPane().add(Cases,BorderLayout.NORTH);
与:
Fenetre.setLayout(new BorderLayout());
Fenetre.add(Bas, BorderLayout.CENTER);
Fenetre.add(Cases, BorderLayout.NORTH);
不清楚您想要什么行为。试试这个:
JPanel bas = new JPanel(new GridLayout(0, 2));//assign a layout manager
bas.add(chiffres);
bas.add(operateurs);
fenetre.getContentPane().add(bas,BorderLayout.SOUTH); //or CENTER
我是 java 的新手,作为一个项目,我们必须编写一个计算器 反向波兰表示法。
我们在 window 的显示中遇到了问题,因为当我们扩展 window[=14 时,包含 2 个 JPanel Chiffres 和 Operateurs 的 JPanel Bas 的大小没有改变=]
JFrame Fenetre = new JFrame ("Calculatrice");
JButton Bouton0 = new JButton("0");
JButton Bouton1 = new JButton("1");
JButton Bouton2 = new JButton("2");
JButton Bouton3 = new JButton("3");
JButton Bouton4 = new JButton("4");
JButton Bouton5 = new JButton("5");
JButton Bouton6 = new JButton("6");
JButton Bouton7 = new JButton("7");
JButton Bouton8 = new JButton("8");
JButton Bouton9 = new JButton("9");
JButton BoutonVirgule = new JButton(",");
JButton BoutonSigne = new JButton("+/-");
JButton BoutonAddition = new JButton("+");
JButton BoutonSoustraction = new JButton("-");
JButton BoutonMultiplication = new JButton("x");
JButton BoutonDivision = new JButton("/");
JButton BoutonPush = new JButton("PUSH");
JButton BoutonSwap = new JButton("<->");
JPanel Chiffres = new JPanel();
Chiffres.setLayout(new GridLayout(4,3));
Chiffres.add(Bouton7);
Chiffres.add(Bouton8);
Chiffres.add(Bouton9);
Chiffres.add(Bouton4);
Chiffres.add(Bouton5);
Chiffres.add(Bouton6);
Chiffres.add(Bouton1);
Chiffres.add(Bouton2);
Chiffres.add(Bouton3);
Chiffres.add(BoutonVirgule);
Chiffres.add(Bouton0);
Chiffres.add(BoutonSigne);
JPanel Cases = new JPanel();
Cases.setLayout(new GridLayout(5,1));
Cases.add(Ligne1);
Cases.add(Ligne2);
Cases.add(Ligne3);
Cases.add(Ligne4);
Cases.add(Ligne5);
JPanel Operateurs = new JPanel();
Operateurs.setLayout(new GridLayout(3,2));
Operateurs.add(BoutonAddition);
Operateurs.add(BoutonSoustraction);
Operateurs.add(BoutonMultiplication);
Operateurs.add(BoutonDivision);
Operateurs.add(BoutonSwap);
Operateurs.add(BoutonPush);
JPanel Bas = new JPanel();
Bas.add(Chiffres);
Bas.add(Operateurs);
Fenetre.getContentPane().add(Bas,BorderLayout.CENTER);
Fenetre.getContentPane().add(Cases,BorderLayout.NORTH);
Fenetre.pack();
Fenetre.setVisible(true);
Fenetre.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
事实上,我想混合这两种情况,因为 Operateurs 的位置在第二张图片中没有保留(Operateurs Panel 应该比 Chiffres Panel 小,如图 1 所示)
没有向 Bas 添加 GridLayout 的照片
将 GridLayout 添加到 Bas 的照片
Black=Cases Green=Bas Pink=Chiffres Cyan=Operateurs
非常感谢您的帮助!
我会替换这些:
Fenetre.getContentPane().add(Bas,BorderLayout.SOUTH);
Fenetre.getContentPane().add(Cases,BorderLayout.NORTH);
与:
Fenetre.setLayout(new BorderLayout());
Fenetre.add(Bas, BorderLayout.CENTER);
Fenetre.add(Cases, BorderLayout.NORTH);
不清楚您想要什么行为。试试这个:
JPanel bas = new JPanel(new GridLayout(0, 2));//assign a layout manager
bas.add(chiffres);
bas.add(operateurs);
fenetre.getContentPane().add(bas,BorderLayout.SOUTH); //or CENTER