qq_37260235
pursueone
2018-02-28 09:47
采纳率: 40%
浏览 1.1k
已采纳

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条回答 默认 最新

  • weixin_38646354
    爱吃米 2018-02-28 09:55
    已采纳

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

    点赞 评论
  • tangxiaochun
    surechun 2018-02-28 09:52

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

    点赞 评论
  • zhengchen10
    zhengchen10 2018-02-28 09:53

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

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

    点赞 评论
  • morgerton
    白萝卜blb 2018-02-28 09:54

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

    点赞 评论
  • x13913359861
    xmh-git 2018-02-28 09:55

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

    点赞 评论
  • chenli101402
    chenli101402 2018-02-28 09:56

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

    点赞 评论
  • qing_wu_fei_yang
    清逸飞扬 2018-03-01 02:30

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

    点赞 评论
  • Gycs2333
    Gycs2333 2018-03-01 08:37

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

    点赞 评论

相关推荐