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 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?
  • ¥15 c++头文件不能识别CDialog