java - 无法看到 JTextField

标签 java swing

按钮 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/

相关文章:

java - 如何将 "translate"此扫描仪输入到 JOptionPane showOptionDialog

java - 通过鼠标点击随机改变矩形的颜色

java - 推荐的独立Swing GUI Builder?

java - 将 java 移植到 javascript : examples, 技术,最佳实践?

java - 为什么 `++a++` 不能用 C++ 编译但 `(++a)++` 可以?

java - 使用 Swing 组件调整处理 Canvas 大小时闪烁

java - SwingUtilities.convert Mouse Event() 在 Java 7 中将按钮设置为 BUTTON

java - Alfresco -/露天和/共享区别

java - 通过 Java 将 Ubuntu 10.4 连接到 MS SQL DB 的问题

java - 如何从JSP中的 "Part"类型文件中提取文件名?