pursueone 2018-02-28 09:47 采纳率: 0%
浏览 1105
已采纳

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

  • 爱吃米 2018-02-28 09:55
    关注

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

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(7条)

报告相同问题?

悬赏问题

  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料