gpt4 book ai didi

java - 为什么我的 BorderLayout 不能与 JPanel 一起使用?

转载 作者:行者123 更新时间:2023-12-01 04:32:43 26 4
gpt4 key购买 nike

当我放入 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.*;

最佳答案

确保您没有创建任何带有保留字或类名的文件。

关于java - 为什么我的 BorderLayout 不能与 JPanel 一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17798052/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com