按钮 addFinishingInformation
的 GUI 窗口未显示。我为其他按钮编写了相同的方法,它们工作得很好。
我已经调试了一段时间,但无法使字段或任何内容显示出来。任何帮助表示赞赏。谢谢!
JButton addFinishingInformation = new JButton(new AbstractAction("Add Finishing Information") {
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
JFrame addFinishingFrame = new JFrame("Add Finishing Information");
addFinishingFrame.setSize(700, 500);
addFinishingFrame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
JPanel addFinishingPanel = new JPanel(new BorderLayout());
JLabel finishingDateFieldLabel = new JLabel("Date:");
finishingDateFieldLabel.setBounds(10, 40, 160, 25);
addFinishingPanel.add(finishingDateFieldLabel);
final JTextField finishingDateField = new JTextField(50);
finishingDateField.setBounds(140, 40, 160, 25);
addFinishingPanel.add(finishingDateField);
Date todaysDateIs_2 = new Date();
Calendar cal_2 = Calendar.getInstance();
cal_2.setTime(todaysDateIs_2);
String formatedTodaysDate_2 = cal_2.get(Calendar.DATE) + "/"
+ (cal_2.get(Calendar.MONTH) + 1) + "/"
+ cal_2.get(Calendar.YEAR);
finishingDateField.setText(formatedTodaysDate_2);
JLabel finishingChalanNoLabel = new JLabel("Chalan no. :");
finishingChalanNoLabel.setBounds(10, 70, 160, 25);
addFinishingPanel.add(finishingChalanNoLabel);
final JTextField finishingChalanNumber = new JTextField(50);
finishingChalanNumber.setBounds(140, 70, 160, 25);
addFinishingPanel.add(finishingChalanNumber);
addFinishingFrame.add(addFinishingPanel);
addFinishingFrame.setLayout(null);
JButton addFinishingInformationToDatabase = new JButton(
new AbstractAction("Add finishing information to database") {
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
Customers customer = new Customers();
Date todaysDate_3 = new Date();
Calendar cal = Calendar.getInstance();
cal.setTime(todaysDate_3);
String formatedDate_3 = cal.get(Calendar.DATE)
+ "/" + (cal.get(Calendar.MONTH) + 1)
+ "/" + cal.get(Calendar.YEAR);
customer.addFinishingInformation(sentToFinishing.getText(),
formatedDate_3,
finishingChalanNumber.getText(),
quantityInWeightFinishing.getText(),
lengthInMeterFinishing.getText(),
totalShawls.getText());
}
});
addFinishingInformationToDatabase.setBounds(110, 300, 300, 70);
addFinishingPanel.add(addFinishingInformationToDatabase);
addFinishingFrame.setVisible(true);
}
});
addFinishingInformation.setBounds(460, 360, 250, 70);
mainPanel.add(addFinishingInformation);
最佳答案
addFinishingFrame.add(addFinishingPanel);
addFinishingFrame.setLayout(null);
停止使用空布局!!!不要使用 setBounds(...)!!!
Swing 被设计为与布局管理器一起使用。
您看不到任何内容,因为面板的大小为 (0, 0),因此没有任何内容可绘制。
这就是您使用布局管理器的原因。布局管理器会为您计算尺寸,因此您无需担心。
阅读 Swing 教程中关于 Layout Managers 的部分了解更多信息和工作示例。
关于java - 无法看到 JTextField,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35139149/