java eclipse中同一个包运行效果

我在eclipse中建了一个工程,下面建了一个包,里面有几个程序,现在我只要一运行
就是这个程序在执行,我同一个包下的另一个程序,是我复制的这个程序,我想修改一下并测试一下,然后发现一直都运行的第一个代码的效果,是因为同一个包下面只会有一个主方法main吗?还是什么,不是很懂
package GameFram;

import java.awt.Color;
import java.awt.Font;
import java.awt.Frame;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;

public class TextFrame extends Frame{
Image image = GameUtil.getImage("Image/sun.jpg");
/**
* 画面加载
*/
public void LoadFrame() {
setBounds(200, 200, 500, 500);
setVisible(true);
new PaintThread().start();

    addWindowListener(new WindowAdapter() {

        @Override
        public void windowClosing(WindowEvent e) {
            // TODO Auto-generated method stub
            System.exit(0);
        }   
    }       
            );  
    }   
private double x=100,y=100;
private boolean left = true;
private boolean up = true;
@Override
public void paint(Graphics g) {
    //System.out.println("paint"); //repaint相当于执行这个paint
    Color c = g.getColor();
    g.drawLine(200, 100, 200, 200);
    g.setColor(Color.blue);
    g.drawRect(300, 200, 150, 130);
    Font f = new Font("宋体",Font.BOLD,200);//要set进去才行
    g.setFont(f);
    g.drawOval(200, 100, 200, 200);
    g.drawString("DDDDD", 200, 200);
    g.drawImage(image, (int)x, (int)y, null);

    if(left) {
        x += -10;
    }else {
        x+=10;
    }
    if(x<0) {
        left=false;
    }else if(x>500-30)
        left=true;

}
/**
 * 重画线程类
 * @author 
 *
 */
class PaintThread extends Thread {
    public void run() {
        while(true) {
            repaint();//重画
            try {
                Thread.sleep(40); //1s = 1000ms
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }

    }
}


public static void main(String[] args) {
    TextFrame tf = new TextFrame();
    tf.LoadFrame();

}

}
我外部类的名字是改了的,也就是在之前那个包下面重新建了一个类,除了外部类的类名我改了,其他都是复制过来的,然而运行的结果还是之前的结果

8个回答

同一个包下不允许类名相同,如果你是复制的话 运行main方法时
public static void main(String[] args) {
TextFrame tf = new TextFrame();
tf.LoadFrame();
}
new的对象应该是新创建的这个,看看导入的包对象,如果你new的是原来包的就会出现你这个效果

qq_37260235
pursueone 哎呀,一语惊醒梦中人呀!
一年多之前 回复

java一个程序只有一个主main方法

在Eclipse里设置一下Run的类名即可。

一个 程序只能有一个main方法入口。

你修改的代码,在main中调用运行,你复制过来的没改运行的应该是之前的。

看看jar包内的META-INF\manifest.mf 中是否有 main-class 这行,它定义了jar 的启动class

要启动你的class 需要指定class名

一个程序只会有一个主方法main方法

运行的类有问题,在eclipse里设置Run as

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!