用getImage(getDoucmentBase(),xxx.gif);和drawImage(),怎么不能在JPanel中画啊?如何在组件中显示图片(不用JButton(Icon)和JLabel(Icon)显示图标的形式),比如在JPanel中,而不是通过继承JApplet在浏览器中显示。怎么才能实现呢?在应用程序里(不在浏览器中显示),有背景图片和活动图片,活动图片运动时,怎么才能正确显示背景图片呢?
谢谢!
谢谢!
解决方案 »
- 江湖救急啊 multiple points异常是什么意思啊
- Eclipse 帮助窗口问题求助
- 关于snmp和tl1开发
- 老问题,在记事本中将回车替换为System.getProperty("line.separator")的最佳方法
- 终于鼓起勇气认真学习JAVA了,先散点分混个脸熟,各位帮忙捧捧场吧~~~
- 使用Java创建ASP组件
- 请问网站的applet应如何设置才能让其他人都能正常浏览。
- 多个JList判断的问题
- 各位同志!小弟想学习JAVA,请问各位高手,我该从哪里开始、怎样学习?只能给那么多的分了!
- 谁能告诉小女子?哪里有Java入门的资料:
- **--这个GUI中,为什么validate()方法前不能加 this 呢???怪怪。。。散分啦。。。
- 在线提问,关于继承关系中的上传下传问题,我写了个例子,大家帮我分析一下,怎么才算是上传,怎么才算是下传,
public void paint(Graphics){
super.paint(g); g.drawImage(image, 0, 0, this);
}你使用getImage()加载图片的话,要保证画之前图片被完全加载。
主要时getImage()问题,我怎么不能正确得到图片呢
总说getDocumentBase()有问题Clock.java:26: cannot resolve symbol
symbol : method getDocumentBase ()
location: class Clock
clockSkin=getImage(getDocumentBase(),"skin.gif");
im = Toolkit.getDefaultToolkit().getImage("YourPic.jpg");
“磨刀不误砍柴工”真是没错啊!不过第二个问题还请高人指点!
import javax.swing.event.*;
import java.awt.*;
import java.awt.event.*;
import java.util.Calendar;public class Clock extends JPanel implements Runnable{
private static Thread timer;
private Image buffer;
Graphics gr;
static JFrame clockFrame;
public void paint(Graphics g) { int d1,d2,d3, degree, x,y;
int x0 =80;
int y0 = 70;
double pend = 100.0; buffer = createImage(600,600);
Graphics2D gr = ( Graphics2D ) buffer.getGraphics(); Calendar calendar = Calendar.getInstance(); degree = 30 * calendar.get(Calendar.HOUR)+ calendar.get(Calendar.MINUTE)/2;
d1 = 55;
gr.setStroke( new BasicStroke( 8.0f ) );
gr.setColor(Color.magenta);
x = x0 + (int) (d1* (double)Math.sin( degree*3.14/180));
y = y0 - (int) (d1 * (double)Math.cos( degree*3.14/180));
gr.drawLine(x0,y0, x,y);
degree = 6 * calendar.get(Calendar.MINUTE);
d1 = 75;
gr.setColor(Color.blue);
x = x0 + (int) (d1* (double)Math.sin( degree*3.14/180));
y = y0 - (int) (d1 * (double)Math.cos( degree*3.14/180));
gr.setStroke( new BasicStroke( 6.0f ) );
gr.drawLine(x0,y0, x,y); degree = 6 * calendar.get(Calendar.SECOND);
d1 = 90;
d2 = 120;
d3 = 250;
gr.setColor(Color.orange);
x = x0 + (int) (d1* (double)Math.sin( degree*3.14/180));
y = y0 - (int) (d1 * (double)Math.cos( degree*3.14/180));
gr.setStroke( new BasicStroke( 3.0f ) );
gr.drawLine(x0,y0, x,y); g.drawImage(buffer,0,0,this);
} /* public void start() {
if(timer == null)
{ Runnable r=new Clock();
timer = new Thread(r);
timer.start();
}
}*/
public void stop() {
timer = null;
} public void run( ) { try {Thread.sleep(500);} catch (InterruptedException e) {}
repaint(); } public void update(Graphics g) {
paint(g);
}
public static void main(String args[]) {
clockFrame=new JFrame("简单时钟");
Clock myClock=new Clock(); clockFrame.getContentPane().add("Center",myClock);
clockFrame.setSize(160,160);
clockFrame.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e) {System.exit(0);}
});
clockFrame.setVisible(true); if(true)
{ Runnable r=new Clock();
timer = new Thread(r);
timer.start();
} }}