2

コードを壊しましたが、その方法がわかりません。まったく。

ある時点で、コードをコンパイルして実行すると、毎回ウィンドウがレンダリングされました。その後、約 15 分間作業したところ、実行時にフレームが表示されなくなりました。作業を取り消したり、run メソッドを追加したり、main メソッドを追加したり、教科書から直接コードをコピーして貼り付けたりすることさえ試みました。何も機能していません。

できるだけ少ないコードを貼り付けようとしました。私のコードがずさんな場合はご容赦ください。スイングを扱うのはこれが初めてです。ありがとう!

public class LibraryFrame extends JFrame implements ActionListener
{
    private JScrollPane studentScroller = new JScrollPane();
    private JPanel addStudent = new JPanel();
    private JTextField UID   = new JTextField();
    private JTextField name  = new JTextField();
    private JTextField email = new JTextField();
    private JButton okButton = new JButton("OK");
    private JButton closeButton = new JButton("Close");
    private JPanel buttonPane = new JPanel();

    public LibraryFrame() 
    {

        setTitle("Student Enrollment");
        setSize(500,200);
        setLocationByPlatform(true);


        addStudent.setLayout(new GridLayout(0, 2, 0, 0));
        addStudent.add(new JLabel("Enter Student UID:"));
        addStudent.add(UID);
        addStudent.add(new JLabel("Enter Student Name:"));
        addStudent.add(name);
        addStudent.add(new JLabel("Enter Student Email:"));
        addStudent.add(email);
        addStudent.add(Box.createRigidArea(new Dimension(0, 5)));
        addStudent.setBorder(BorderFactory.createEmptyBorder(10, 10, 10, 10));

        okButton.setActionCommand(null);
        closeButton.addActionListener(new ActionListener() //implement window close only
        {
            @Override
            public void actionPerformed(ActionEvent e) 
            { dispose(); }
        });

        buttonPane.setLayout(new BoxLayout(buttonPane, BoxLayout.LINE_AXIS));
        buttonPane.setBorder(BorderFactory.createEmptyBorder(0, 10, 10, 10));
        buttonPane.add(Box.createRigidArea(new Dimension(0, 0)));
        buttonPane.add(okButton);
        buttonPane.add(Box.createRigidArea(new Dimension(10,  0)));
        buttonPane.add(closeButton);

        Container studentPane = getContentPane();
        studentPane.add(addStudent, BorderLayout.CENTER);
        studentPane.add(buttonPane, BorderLayout.PAGE_END);
        pack();
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        pack();
        setVisible(true);
    }
}
4

1 に答える 1

3
  • メインメソッドが表示されていないため、これをどのように実行しようとしているのかわかりません。
  • すべてを StudentPane に追加します。StudentPane を JFrame のthisオブジェクトのどこに追加しますか? GUI に追加されていない場合、表示されません。
于 2013-10-16T01:28:35.217 に答える