[英]BorderLayout Form won't show not even with setsize
我是java swing的新手,我正在使用BorderLayout构建一个带菜单和JPanels的应用程序。 但是小组在这里不会显示setSize。 在这里,我使用菜单将面板添加到框架:
if (actionEvent.getActionCommand() == "Tarif Änderung") {
guiFrame.revalidate();
guiFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
TarifTextForm tarifForm =new TarifTextForm();
tarifForm.setVisible(true);
guiFrame.getContentPane().add(tarifForm);
//show the frame
guiFrame.pack();
guiFrame.setPreferredSize(new Dimension(500, 500));
guiFrame.setVisible(true);
在这里,我使用Textfield构建Panel。
tarifnameLbl=new JLabel();
tarifnameLbl.setText("Tarifname:");
tarifnameFld=new JTextField();
tarifnameFld.setText("Zum starten, bitte tippen");
betragLbl=new JLabel();
betragLbl.setText("Betrag:");
betragFld=new JTextField();
betragFld.setText("0,00");
JPanel p = new JPanel(new BorderLayout());
p.add(tarifnameLbl, BorderLayout.WEST);
p.add(betragLbl, BorderLayout.WEST);
p.add(tarifnameFld, BorderLayout.EAST);
p.add(betragFld, BorderLayout.EAST);
JPanel btnPanel = new JPanel();
JButton newBut =new JButton();
newBut.setText("Erstellen");
btnPanel.add(newBut);
JButton delBut=new JButton();
delBut.setText("Löschen");
btnPanel.add(delBut);
JButton chgBut=new JButton();
chgBut.setText("Ändern");
btnPanel.add(chgBut);
p.add(btnPanel, BorderLayout.SOUTH);
JPanel panel = new JPanel();
panel.setLayout(new BorderLayout(10,10));
panel.setSize(500,500);
panel.add(p, BorderLayout.CENTER);
我不明白问题在哪里:(请帮忙。非常感谢!
错误在这里:
if (actionEvent.getActionCommand() == "Tarif Änderung") {
不要使用==
来比较字符串,而是使用equals(...)
或equalsIgnoreCase(...)
方法。 理解==检查两个对象是否相同而不是你感兴趣的。另一方面,这些方法检查两个字符串是否具有相同顺序的相同字符,这就是重要的。 而不是
if (fu == "bar") {
// do something
}
做,
if ("bar".equals(fu)) {
// do something
}
要么,
if ("bar".equalsIgnoreCase(fu)) {
// do something
}
或为您的计划:
if ("Tarif Änderung".equals(actionEvent.getActionCommand())) {
// ....
}
另请注意
setVisible(true)
。 pack()
后在GUI上调用setPreferredSize(...)
将无效。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.