我的java程序中有1个警告和2个错误:
警告:可序列化的类Info没有声明long类型的静态最终serialVersionUID字段
错误1:令牌“;”上的语法错误,{此标记后的预期
错误2:语法错误,插入“}”以完成阻止
代码:
package mainPackage;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowEvent;
import javax.swing.*;
public class Info extends JFrame { //<-----Warning: "The serializable class Info does not declare a static final serialVersionUID field of type long"
//Variables
boolean Is64Bit = false;
boolean IsWindows = false; //<-----Error 1:"Syntax error on token ";", { expected after this token"
//Bits
if(System.getProperty("os.name").equals("Mac OS X"))
{
IsWindows = false;
}
if(System.getProperty("os.name").equals("Lunix"))
{
IsWindows = false;
}
else
{
IsWindows = true;
if (System.getProperty("os.arch").equals("amd64"))
{
Is64Bit = true;
}
if (System.getProperty("os.arch").equals("x86_64"))
{
Is64Bit = true;
}
}
//Define Objects on Screen
JPanel row1 = new JPanel();
JPanel row2 = new JPanel();
JLabel hello = new JLabel("Hello " + System.getProperty("user.name") + "!", JLabel.LEFT);
JLabel OSlabel = new JLabel();
if(IsWindows)
{
if(Is64Bit = true)
{
OSlabel = new JLabel("Your Operating System: " + System.getProperty("os.name") + " 64 bit.");
}
if(Is64Bit = false)
{
OSlabel = new JLabel("Your Operating System: " + System.getProperty("os.name") + " 32 bit.");
}
}
else
{
OSlabel = new JLabel("Your Operating System: " + System.getProperty("os.name") + ".");
} //<-----Error 2:"Syntax error, insert "}" to complete Block"
public Info()
{
super("Computer Info");
//Window
setSize(350, 100);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
GridLayout layout = new GridLayout(1, 1, 10, 10);
setLayout(layout);
FlowLayout layout1 = new FlowLayout(FlowLayout.CENTER, 10, 10);
row1.setLayout(layout1);
row1.add(hello);
add(row1);
GridLayout layout2 = new GridLayout(1, 1, 10, 10);
row2.setLayout(layout2);
row2.add(OSlabel);
add(row2);
setVisible(true);
}
private static void setLookAndFeel()
{
try
{
UIManager.setLookAndFeel
(
"com.sun.java.swing.plaf.nimbus.NumbusLookAndFeel"
);
}
catch (Exception exc)
{
//ignore error
}
}
public static void main(String[] arguments)
{
Info.setLookAndFeel();
Info frame = new Info();
}
}
答案 0 :(得分:1)
您最大的问题是您的方法中没有可执行语句,这在Java中是不允许的。 Info
构造函数上方的所有代码都需要在方法中。
在一个不相关的说明中,你已拼错了#34; Linux&#34;。
答案 1 :(得分:0)
1)如果在分号后面有一个括号(行尾的标点符号),那么它可能是一个方法或构造函数,而不是一行代码的结尾。
2)添加另一个端部支架。再次,确保每个开始括号都有一个结束括号。
编辑:可以通过配对括号来同时修复一个和两个。
3)序列化的类应具有序列号,即使您不使用它。
4)我认为你是新来的。在网上询问之前尝试自己调试一下,包括检查控制台中的错误,看看是否有任何行出现错误。