当前位置: 代码迷 >> Java相关 >> [求助]为什么把类分几个文件放在一个包里就说找不到类了?[已解决]
  详细解决方案

[求助]为什么把类分几个文件放在一个包里就说找不到类了?[已解决]

热度:202   发布时间:2007-01-24 14:24:00.0
[CODE]

//Clock.java
package eduCondition;

import java.sql.*;
import java.net.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.util.Date;
import java.text.SimpleDateFormat;


///////////////////////////////////////////////////////////////////////////////////////////////////////////

public class Clock extends JPanel implements Runnable, ActionListener {

private String str = "";
private int x;
private Font font = new Font("Serif", Font.BOLD, 20);
private Color color = new Color(200, 255, 200);
private JButton b_login;
private SimpleDateFormat bartDateFormat = new SimpleDateFormat("各位老师学生,你们好! 今天是 yyyy年 MM月 dd日 EEEE HH:mm:ss");

public Clock() {
setOpaque(false);
Thread c = new Thread(this);
c.start();
setLayout(null);

b_login = new JButton("登陆");
b_login.addActionListener(this);
b_login.setFont(font);
b_login.setBackground(color);
b_login.setBounds((int)(getWidth() / 8), (int)(getHeight() / 2), getWidth() / 10, getHeight() / 12);

add(b_login);

}

public void run() {
while (true) {
try {
Thread.sleep(50);
str = bartDateFormat.format(new Date());
x += 1;
if (x > this.getWidth()) {
x = -380;
}
repaint();
} catch (Exception e) {
e.printStackTrace();
}

}

}

public void paintComponent(Graphics g) {
g.drawString(str, x, (int)(getHeight() / 4));
b_login.setBounds((int)(getWidth() / 8), (int)(getHeight() / 2), getWidth() / 10, getHeight() / 12);
Date str = new Date();
}

public void actionPerformed(ActionEvent evt) {

Object source = evt.getSource();

if (source == b_login) {
LogIn lg = new LogIn();
b_login.setVisible(false);
}
repaint();
}
}


[/CODE]
----------------解决方案--------------------------------------------------------
[CODE]

//LogIn.java
package eduCondition;

import java.sql.*;
import java.net.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.util.Date;
import java.text.SimpleDateFormat;


///////////////////////////////////////////////////////////////////////////////////////////////////////////

class LogIn extends JFrame implements ActionListener {
private JLabel l_pic;
private JTextField tf_id = new JTextField(20);
private JPasswordField p_key = new JPasswordField(20);
private JLabel l_id = new JLabel("用户名:",JLabel.RIGHT);
private JLabel l_key = new JLabel("密码:",JLabel.RIGHT);
private JButton b_sure = new JButton("确定");

private GridBagLayout gridbag = new GridBagLayout();
private GridBagConstraints constraints = new GridBagConstraints();


public LogIn() {

super("用户登陆");
setBounds(400, 400, 400, 200);
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);

b_sure.addActionListener(this);
JPanel panel = new JPanel();
panel.setLayout(gridbag);

l_pic = new JLabel(new ImageIcon("pic/login.gif"));
p_key.setEchoChar('$');

buildConstraints(constraints, 0, 0, 1, 3, 10, 30);
constraints.fill = GridBagConstraints.BOTH;
gridbag.setConstraints(l_pic, constraints);
panel.add(l_pic);

buildConstraints(constraints, 0, 1, 1, 1, 5, 10);
constraints.fill = GridBagConstraints.NONE;
constraints.anchor = GridBagConstraints.EAST;
gridbag.setConstraints(l_id, constraints);
panel.add(l_id);

buildConstraints(constraints, 0, 2, 1, 1, 50, 10);
constraints.fill = GridBagConstraints.HORIZONTAL;
gridbag.setConstraints(tf_id, constraints);
panel.add(tf_id);

buildConstraints(constraints, 1, 1, 1, 1, 5, 10);
constraints.fill = GridBagConstraints.NONE;
constraints.anchor = GridBagConstraints.EAST;
gridbag.setConstraints(l_key, constraints);
panel.add(l_key);

buildConstraints(constraints, 1, 2, 1, 1, 50, 10);
constraints.fill = GridBagConstraints.HORIZONTAL;
gridbag.setConstraints(p_key, constraints);
panel.add(p_key);

buildConstraints(constraints, 2, 1, 2, 1, 55, 10);
constraints.fill = GridBagConstraints.NONE;
constraints.anchor = GridBagConstraints.CENTER;
gridbag.setConstraints(b_sure, constraints);
panel.add(b_sure);

setContentPane(panel);
show();
}


protected void buildConstraints(GridBagConstraints gbc, int gx, int gy, int gw, int gh, int wx, int wy) {
gbc.gridx = gx;
gbc.gridx = gy;
gbc.gridwidth = gw;
gbc.gridheight = gh;
gbc.weightx = wx;
gbc.weighty = wy;
}


public void actionPerformed(ActionEvent evt) {

Object source = evt.getSource();

if (source == b_sure) {
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
System.out.println("成功加载JDBC-ODBC驱动程序!");
}
catch (ClassNotFoundException ex) {
System.out.println("加载JDBC-ODBC驱动程序失败!");
System.out.println(ex.getMessage());
return;
}
try {
Connection connection = DriverManager.getConnection("jdbc:odbc:jxzlgl", "sa", "123456");
Statement st = connection.createStatement();
String query = "SELECT * FROM 用户表 WHERE 用户名='"+tf_id.getText()+"'";
ResultSet rs = st.executeQuery(query);
System.out.println(rs.getString(1));
if (rs.next()) {
if (p_key.getText() != rs.getString(2)) {
JOptionPane.showMessageDialog(null, "密码错误!", "错误:", JOptionPane.ERROR_MESSAGE);
}
else {
JOptionPane.showMessageDialog(null, "登陆成功", "!", JOptionPane.WARNING_MESSAGE);
}
}
else {
JOptionPane.showMessageDialog(null, "用户不存在!", "错误:", JOptionPane.ERROR_MESSAGE);
}
rs.close();
st.close();
connection.close();
}
catch(SQLException ec) {
System.out.println("查询数据库失败!");
System.out.println("SQLException:"+ec.getMessage());
}
}
//repaint();
}
}

[/CODE]
----------------解决方案--------------------------------------------------------
[CODE]

//MyPanel.java
package eduCondition;

import java.sql.*;
import java.net.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.util.Date;
import java.text.SimpleDateFormat;


///////////////////////////////////////////////////////////////////////////////////////////////////////////

class MyPanel extends JPanel {
private Image bg;
public MyPanel(Image bg) {
this.bg = bg;
}
protected void paintComponent(Graphics g) {
super.paintComponent(g);
g.drawImage(bg, 0, 0, getWidth(), getHeight(), this);
}
}

[/CODE]
----------------解决方案--------------------------------------------------------
你是怎么编译这个程序的,是不是

javac Clock.java


然后有没有生成Clock.class文件?
----------------解决方案--------------------------------------------------------

我一开始是直接javac Jxzlgl.java 不行
后来我想分开先试试就用 javac Clock.java还是不行 都说找不到里面用到的那些在另外JAVA文件里的类


----------------解决方案--------------------------------------------------------

你应该编译你没有对别的类产生引用的JAVA文件

这样一个一个编译过来

比如你的MyPanel类就应该先编译


and your classpath must be add a dot"." for current path,otherwise,the JVM will not find the class you want


----------------解决方案--------------------------------------------------------

我先javac MyPanel.java和LogIn.java再javac Clock.java的时候说找不到LogIn()


----------------解决方案--------------------------------------------------------
如果是在编译器里面就好了。不会出现这种问题!
----------------解决方案--------------------------------------------------------
你把所有的包都去掉,就可以了

要不你就编译好一个就把那个类马上放到eduCondition文件夹下面
----------------解决方案--------------------------------------------------------

这个是行的 我早上试过了 我的意思就是 如果我想把它们做成包就有问题了


----------------解决方案--------------------------------------------------------
  相关解决方案