1

JPanel で BorderLayout を操作すると、次のように表示されます。constructer JPanel in class JPanel cannot be applied to given types; required: no arguments; found: BorderLayout; reason: actual and formal argument lists differ in length;

これが私のコードです:

public class MTGSAMPServerReference extends JFrame implements ActionListener {

    public static Toolkit tk = Toolkit.getDefaultToolkit(); 
    static int ScrnWidth = ((int) tk.getScreenSize().getWidth());
    static int ScrnHeight = ((int) tk.getScreenSize().getHeight());

    private static final long serialVersionUID = 1L;
    private static JList list1;
    private static JButton next;

    public MTGSAMPServerReference() {
        // set flow layout for the frame
        this.getContentPane().setLayout(new FlowLayout(FlowLayout.LEADING));
        Object[] data1 = { "Value 1", "Value 2", "Value 3", "Value 4", "Value 5" };
        JPanel controls = new JPanel( new BorderLayout(5,5) ); // The line getting the main error.
        list1 = new JList<Object>(data1);
        list1.setVisibleRowCount(5);
        next = new JButton("Next");
        next.addActionListener(this);
        controls.add(new JScrollPane(list1)); // A result error of the JPanel error ^
        controls.add(next, BorderLayout.PAGE_END); // A result error of the JPanel error ^
        // adjust numbers as needed.
        controls.setBorder(new EmptyBorder(25,25,0,0));

        add(controls); // A result error of the JPanel error ^
        // add list to frame
        add(list1);
        add(next);
    }
    @Override
    public void actionPerformed(ActionEvent e) {
        if (e.getActionCommand().equals("Next")) {
            int index = list1.getSelectedIndex();
            System.out.println("Index Selected: " + index);
            String s = (String) list1.getSelectedValue();
            System.out.println("Value Selected: " + s);
        }
    }
    private static void createAndShowGUI() {
        //Create and set up the window.
        JFrame f = new MTGSAMPServerReference();
        //Display the window.
        f.pack();
        f.setVisible(true);
        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        f.setSize(1200, 800);
        f.setLocationRelativeTo(null);
        list1.setSize(250, 250);
        list1.setLocation(0, 0);
        next.setSize(75, 25);
        next.setLocation(251, 276);
    }

    public static void main(String[] args) {
        javax.swing.SwingUtilities.invokeLater(new Runnable() {
        public void run() {
        createAndShowGUI();
        }
        });
    }
}

私のコードには何がありませんか? 私はすべてのインポートを持っていますが、それは単なる小さなエラーであり、おそらくタイプミスであると確信しています。

どんな助けでも大歓迎です!

前もって感謝します!

編集:ここに私が持っているインポートがあります:

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.border.*;
4

1 に答える 1

0

予約語またはクラス名を含むファイルを作成していないことを確認してください。

于 2013-07-23T03:11:45.940 に答える