Java 无法查看JTextField

Java 无法查看JTextField,java,swing,Java,Swing,按钮addFinishingInformation的我的GUI窗口未显示。我为其他按钮编写了相同的方法,它们工作得非常好 我已经调试了一段时间,但是没有能够显示字段或任何内容。感谢您的帮助。谢谢 JButton addFinishingInformation = new JButton(new AbstractAction("Add Finishing Information") { @Override public void actionPerformed(ActionEve

按钮
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);
停止使用空布局!!!不要使用后退(…)

Swing设计用于布局管理器

你看不到任何东西,因为你的面板的大小是(0,0),所以没有东西可以画

这就是为什么要使用布局管理器。布局管理器将为您计算尺寸,因此您无需担心

有关更多信息和工作示例,请阅读上Swing教程的部分

停止使用空布局!!!不要使用后退(…)

Swing设计用于布局管理器

你看不到任何东西,因为你的面板的大小是(0,0),所以没有东西可以画

这就是为什么要使用布局管理器。布局管理器将为您计算尺寸,因此您无需担心


阅读Swing教程中的章节,了解更多信息和工作示例。

哪个是主面板布局?它是包含所有其他面板的面板。希望有帮助。基本上,我将所有面板添加到主面板。这是GUI运行时显示的第一个屏幕。您在这个JFrame上有一个容器(JFrame)。您必须添加面板(mainPanel)。这个面板应该有一个布局(GridLayout、BorderLayout等)。我不知道为什么按钮没有显示。在JFrame实例中,您是否调用了pack()方法?您需要创建并发布一个更小、更简单的示例程序,让我们能够更全面地了解您的问题。一般建议包括重构代码,因为此类中的代码似乎太多。创建更小更简单的类,因为这样可以更容易地调试和增强。不要显示多个jframe。避免空布局和设置边界。当使用
null
布局时,您应该预料到意外和不需要的情况。避免使用
null
布局,像素完美的布局在现代ui设计中是一种错觉。影响零部件单个尺寸的因素太多,您无法控制。Swing的设计宗旨是与核心的布局管理器一起工作,丢弃这些将导致无止境的问题和问题,您将花费越来越多的时间试图纠正主面板布局是什么?它是包含所有其他布局的面板。希望有帮助。基本上,我将所有面板添加到主面板。这是GUI运行时显示的第一个屏幕。您在这个JFrame上有一个容器(JFrame)。您必须添加面板(mainPanel)。这个面板应该有一个布局(GridLayout、BorderLayout等)。我不知道为什么按钮没有显示。在JFrame实例中,您是否调用了pack()方法?您需要创建并发布一个更小、更简单的示例程序,让我们能够更全面地了解您的问题。一般建议包括重构代码,因为此类中的代码似乎太多。创建更小更简单的类,因为这样可以更容易地调试和增强。不要显示多个jframe。避免空布局和设置边界。当使用
null
布局时,您应该预料到意外和不需要的情况。避免使用
null
布局,像素完美的布局在现代ui设计中是一种错觉。影响零部件单个尺寸的因素太多,您无法控制。Swing的设计初衷是与布局管理器一起工作,丢弃这些布局管理器将导致无止境的问题,您将花费越来越多的时间来纠正这些问题
    addFinishingFrame.add(addFinishingPanel);
    addFinishingFrame.setLayout(null);