[英]Javac error: Cannot find Symbol
我编写了几个程序,我编写了一些程序,但知道我编写了一个Chat messenger。 当我编译服务器或客户端时,我总是从javac得到错误。 “错误:找不到符号”。 并且错误是在其他类的构造函数中应该如何构造那里。 例:
Chat.java:11 error: cannot find symbol
Frame frm = new Frame();
^
Symbol: class Frame
location: class Chat
Chat.java:11 error: cannot find symbol
Frame frm = new Frame();
^
Symbol: class Frame
location: class Chat
主要
package main;
public class Chat {
public static void main(String args[]){
Frame frm = new Frame();
frm.setLayout(null);
frm.setVisible(true);
frm.setSize(800, 600);
frm.setResizable(false);
// a loop who wait for an true boolean
frm.abfrage();
while(true){
frm.readChat();
}
}
}
没有函数的FRAME类(仅构造函数)
package main;
//action + windowlistener + event import;
//Inputreader,writer,reader and IOException import;
//socket import + exception;
//.. there are some Javax.swing imports;
public class Frame extends JFrame {
Client client;
JPanel textPanel;
static boolean start;
static JTextArea messengerText;
JTextField writenText;
JTextField portInfo;
JTextField hostInfo;
JButton senden;
JButton connect;
public String writenString;
public String chatString;
int port;
String adress;
public Frame(){
super("Chat by lionlak");
// this.client = client;
client = new Client("localhost",5483);
setDefaultCloseOperation(DO_NOTHING_ON_CLOSE);
//Deklarationen
start = false;
writenString = "Hallo vom Client";
chatString = "Chat by lionlak";
//Konstruktoren
//JPanel
textPanel = new JPanel();
//JTextField
writenText = new JTextField();
portInfo = new JTextField();
hostInfo = new JTextField();
messengerText = new JTextArea();
//JButton
senden = new JButton("SENDEN");
connect = new JButton("Connect");
//Listener
senden.addActionListener(new actionListener());
connect.addActionListener(new actionListener());
addWindowListener(new windowHandler());
//Eigenschaften
//JPanel
textPanel.setLayout(null);
textPanel.setBounds(10,150,490,780);
//JTextField
portInfo.setBounds(120,10,100,40);
portInfo.setText("5483");
hostInfo.setBounds(10, 10, 100, 40);
hostInfo.setText("127.0.0.1");
messengerText.setBounds(0,0,380,290);
messengerText.setText(chatString);
writenText.setBounds(0, 310, 280, 100);
writenText.setText("Deine Nachricht!");
//JButton
senden.setBounds(290, 310, 100, 40);
connect.setBounds(230, 10, 100, 40);
//Add
textPanel.add(messengerText);
textPanel.add(writenText);
textPanel.add(senden);
add(hostInfo);
add(portInfo);
add(connect);
add(textPanel);
}
在您的Chat.java中,您引用了自己的Frame.class,它位于同一个包中。 所以不需要导入。
但是编译器必须可以访问Frame.class,方法是将它添加到编译器的类路径中,或者通过在单个编译调用中编译所有java文件来更好。 例如:
javac Frame.java Chat.java
一个问题可能是如果Frame.java有编译错误阻止它编译,那么没有Frame.class。
您需要在文件的开头添加以下导入行:
import java.awt.Frame;
根据您的喜好,如果您在java.awt
包中使用其他类,您可能希望使用此:
import java.awt.*;
所有的答案都是要导入java.awt.Frame
,但是,可能还需要导入一些其他的Frame
类。 此Frame
类将属于您尝试编译的API包。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.