在显示内容之前Jframe变黑了?

时间:2014-07-13 03:17:44

标签: java swing jframe jpanel

public class QuizPlay {
    JFrame frame;
    JPanel mainPanel;
    JButton button;
    GridBagConstraints gbc;
    ArrayList<String> questions;
    ArrayList<String> answers;
    boolean isShown;
    Iterator<String> ita;
    Iterator<String> itq;
    JTextArea textArea;

    public static void main(String[] args) {
        QuizPlay quiz = new QuizPlay();
        quiz.loadLists(quiz.chooseFile());
        quiz.setupGui();

    }

    public QuizPlay() {
        frame = new JFrame();
        mainPanel = new JPanel(new GridBagLayout());
        questions = new ArrayList<>();
        answers = new ArrayList<>();
        gbc = new GridBagConstraints();
        textArea = new JTextArea();

    }

    public void setupGui() {
        mainPanel.setBorder(BorderFactory.createEmptyBorder(10, 10, 10, 10));
        frame.setVisible(true);
        frame.add(mainPanel);
        frame.setDefaultCloseOperation(frame.EXIT_ON_CLOSE);

        button = new JButton("Begin");
        button.setPreferredSize(new Dimension(150, 70));
        button.addActionListener(buttonListener);
        gbc.gridx = 0;
        gbc.gridy = 2;
        mainPanel.add(button, gbc);

        gbc.gridy = 1;
        mainPanel.add(Box.createRigidArea(new Dimension(10, 10)), gbc);

        Font font = new Font("sanserif", Font.BOLD, 24);
        textArea.setFont(font);
        textArea.setForeground(Color.BLACK);
        textArea.setEnabled(false);
        textArea.setPreferredSize(new Dimension(400, 400));
        gbc.weighty = 1;
        gbc.anchor = GridBagConstraints.PAGE_START;
        gbc.gridx = 0;
        gbc.gridy = 0;
        mainPanel.add(textArea, gbc);

        frame.pack();
    }

    public void loadLists(File file) {
        try {
            BufferedReader reader = new BufferedReader(new FileReader(file));
            String line;
            while ((line = reader.readLine()) != null) {
                questions.add(line.split("/")[0]);
                answers.add(line.split("/")[1]);
                ita = answers.iterator();
                itq = questions.iterator();
            }
        } catch (Throwable e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

    }

    public File chooseFile() {
        JFileChooser chooser = new JFileChooser();
        chooser.showOpenDialog(frame);
        return chooser.getSelectedFile();
    }

    ActionListener buttonListener = new ActionListener() {

        @Override
        public void actionPerformed(ActionEvent arg0) {
            if (isShown == false && itq.hasNext()) {
                textArea.setText(itq.next());
                button.setText("Show Answer");
                isShown = true;

            }

            else if (isShown == true && ita.hasNext()) {
                textArea.append("\n" + ita.next());
                button.setText("Next");
                isShown = false;

            }

            else
                button.setText("Done!");

        }

    };

}

我有以下程序从文件中读取问题和答案,并在屏幕上显示它们以测试用户知识(有点像测验卡)。但出于某种原因,当这个程序开始时,由于某种原因,框架全部变为黑色约2秒。有人可以指出导致这个奇怪的错误的原因。

0 个答案:

没有答案