Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/357.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为什么我的BorderLayout不能与我的JPanel一起工作?_Java_Swing_Jpanel_Border Layout_Flowlayout - Fatal编程技术网

Java 为什么我的BorderLayout不能与我的JPanel一起工作?

Java 为什么我的BorderLayout不能与我的JPanel一起工作?,java,swing,jpanel,border-layout,flowlayout,Java,Swing,Jpanel,Border Layout,Flowlayout,当我将我的JPanel放入BorderLayout时,它告诉我:类JPanel中的构造函数JPanel不能应用于给定的类型; 必需:无参数; 发现:边界布局; 原因:实际参数列表和正式参数列表长度不同 这是我的密码: public class MTGSAMPServerReference extends JFrame implements ActionListener { public static Toolkit tk = Toolkit.getDefaultToolkit();

当我将我的JPanel放入BorderLayout时,它告诉我:
类JPanel中的构造函数JPanel不能应用于给定的类型;
必需:无参数;
发现:边界布局;
原因:实际参数列表和正式参数列表长度不同

这是我的密码:

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
语句?@andrethompson人们总是告诉我只输入必要的代码。过去有人告诉我不要包括进口。我应该包括它们吗?“我应该吗?”我会将“包导入”放入SSCCE,就像我为您提供的示例一样。它只在源代码中添加了5行(在本例中),并且非常清楚哪些包包含这些类。顺便说一句,当我添加在SSCCE中看到的导入时,代码为我编译,没有任何警告或错误。你没有在某处重新定义你自己的
JPanel
类,是吗?如果你完全限定了它,这个问题会消失吗
javax.swing.JPanel controls=newjavax.swing.JPanel(newborderlayout(5,5))“我很抱歉浪费了你们的时间!”我们会忘记的现在(或网站允许时)最好的做法是a)使用问题标签下面的链接删除问题。。或b)等待一段时间,然后输入您自己的答案。很高兴你把它整理好了。:)
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.border.*;