这段代码不知道哪里出错了

时间:2021-09-13 14:43:33
package swing;
import javax.swing.*;
import java.awt.*;
public class A1 {

public static void main(String[] args) {
// 创建窗体并设置窗体标题
JFrame frm = new JFrame("使用JPanel");
// 设置窗体关闭方式
frm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

// 创建面板并放在窗体上半部分
JPanel topPanel = new JPanel();
frm.add(topPanel, BorderLayout.NORTH);


// 创建提示标签并设置显示信息
JLabel show = new JLabel();
show.setText("请输入姓名:");

// 创建输入框,设置为可编辑,左侧输入,20列
JTextField input = new JTextField();
input.setEditable(true);
input.setHorizontalAlignment(SwingConstants.LEFT);
input.setColumns(20);

// 创建提交按钮
JButton myBtn = new JButton("提交");

// 添加显示标签、输入框和按钮
topPanel.add(show);
topPanel.add(input);
topPanel.add(myBtn);

// 创建面板并放在窗体下半部分
JPanel bottomPanel = new JPanel();
frm.add(bottomPanel, BorderLayout.CENTER);

// 创建提示标签并设置显示信息
JLabel againshow = new JLabel();
againshow.setText("显示所有输入的姓名:");
// 创建输出框,5行32列,不可编辑
JTextArea output = new JTextArea();
output.setRows(5);
output.setColumns(32);
output.setEditable(false);

// 添加提示标签和输出框
bottomPanel.add(againshow);
bottomPanel.add(output);

// 设置窗体位置与大小并显示
frm.setBounds(400, 200, 400, 200);
frm.setVisible(true);
}
}


完全就是书上的代码,别人的电脑上可以运行,我又重装了jdk,还是不行
Exception in thread "main" java.lang.Error: Unresolved compilation problems: 
The method add(String, Component) in the type Container is not applicable for the arguments (JPanel, String)
The method add(JLabel) is undefined for the type JPanel
The method add(JTextField) is undefined for the type JPanel
The method add(JButton) is undefined for the type JPanel
The method add(String, Component) in the type Container is not applicable for the arguments (JPanel, String)
The method add(JLabel) is undefined for the type JPanel
The method add(JTextArea) is undefined for the type JPanel

at swing.A1.main(A1.java:14)

7 个解决方案

#1


代码没问题,JDK版本太低了
好像得先低版本的需要先getContentPanel再add上去
不能直接add

#2


编译和执行的jdk版本不一致
需要调Compiler compliance level,如果用的eclipse的话

#3


引用 2 楼 dracularking 的回复:
编译和执行的jdk版本不一致
需要调Compiler compliance level,如果用的eclipse的话

应该怎么调整呢?在compiler设置里是1.8啊

#4


我这运行的没问题啊,eclipse中

#5


我eclipse jdk都重新装过了,还是这个情况啊,工作空间也删了

#6


删掉workspace以后重新打就可以了,不知道哪里不对

#7


类名错误,可以了

#1


代码没问题,JDK版本太低了
好像得先低版本的需要先getContentPanel再add上去
不能直接add

#2


编译和执行的jdk版本不一致
需要调Compiler compliance level,如果用的eclipse的话

#3


引用 2 楼 dracularking 的回复:
编译和执行的jdk版本不一致
需要调Compiler compliance level,如果用的eclipse的话

应该怎么调整呢?在compiler设置里是1.8啊

#4


我这运行的没问题啊,eclipse中

#5


我eclipse jdk都重新装过了,还是这个情况啊,工作空间也删了

#6


删掉workspace以后重新打就可以了,不知道哪里不对

#7


类名错误,可以了