社区
Java SE
帖子详情
如何正确显示图片?
danseshi
2005-08-17 09:20:10
用getImage(getDoucmentBase(),xxx.gif);和drawImage(),怎么不能在JPanel中画啊?如何在组件中显示图片(不用JButton(Icon)和JLabel(Icon)显示图标的形式),比如在JPanel中,而不是通过继承JApplet在浏览器中显示。怎么才能实现呢?
在应用程序里(不在浏览器中显示),有背景图片和活动图片,活动图片运动时,怎么才能正确显示背景图片呢?
谢谢!
...全文
403
9
打赏
收藏
如何正确显示图片?
用getImage(getDoucmentBase(),xxx.gif);和drawImage(),怎么不能在JPanel中画啊?如何在组件中显示图片(不用JButton(Icon)和JLabel(Icon)显示图标的形式),比如在JPanel中,而不是通过继承JApplet在浏览器中显示。怎么才能实现呢? 在应用程序里(不在浏览器中显示),有背景图片和活动图片,活动图片运动时,怎么才能正确显示背景图片呢? 谢谢!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
9 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
chenweionline
2005-08-19
打赏
举报
回复
试试在移动图片的时候调用JPanel的repaint()方法,重绘背景图。
danseshi
2005-08-19
打赏
举报
回复
不懂线程,帮忙看一下,怎么不能循环??
import javax.swing.*;
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();
}
}
}
chenweionline
2005-08-18
打赏
举报
回复
活动图片指的是gif吗?
可以试试重载JPanel的paint()方法画出背景图片,然后构造一个包含活动图片的ImageIcon将其添加进JLabel,在将JLabel加入JPanel。
可能还需要JLabel.setOpaque(false);
danseshi
2005-08-18
打赏
举报
回复
谢谢上边的
在《Java 2 图形设计卷Ⅰ:AWT》找到答案了
在应用程序里获取图像的引用,应用程序从Toolkit类中调用getImage()方法,而不是调用Applet.getImage()方法。
而我就犯了这个错误,没有好好看书,惭愧啊!
“磨刀不误砍柴工”真是没错啊!
不过第二个问题还请高人指点!
danseshi
2005-08-18
打赏
举报
回复
不是
就是有个背景图片
上面有个移动的图片,怎么能让背景图片正常的显示呢
chenweionline
2005-08-17
打赏
举报
回复
加载和显示图像的方法,看我的blog吧
http://www.blogjava.net/leon/archive/2005/07/12/7532.aspx
danseshi
2005-08-17
打赏
举报
回复
能不能说的详细点
主要时getImage()问题,我怎么不能正确得到图片呢
总说getDocumentBase()有问题
Clock.java:26: cannot resolve symbol
symbol : method getDocumentBase ()
location: class Clock
clockSkin=getImage(getDocumentBase(),"skin.gif");
chenweionline
2005-08-17
打赏
举报
回复
重载JPanel的
public void paint(Graphics){
super.paint(g);
g.drawImage(image, 0, 0, this);
}
你使用getImage()加载图片的话,要保证画之前图片被完全加载。
congliu
2005-08-17
打赏
举报
回复
Image im;
im = Toolkit.getDefaultToolkit().getImage("YourPic.jpg");
如何
正确
使用Maven?
Maven是一个非常优秀的项目管理和构建工具,做为一名Java开发人员,我们需要熟练掌握Maven的基础知识,并且能够了解其深层次的一些概念和操作。在本次的Maven入门课程中,我们从简单的Maven是什么入手,由浅入深的...
Spyder
图片
无法
显示
?plt.title()无法
显示
中文?
代码
正确
但是plt.show运行结果并不
显示
图片
设置完成后运行结果会正常
显示
plt.title()无法
显示
中文 这是因为 plt.title()默认内容是英文 解决这个问题,只需添加两行代码 plt.rcParams['font.sans-serif...
Vue中
显示
img
图片
,
显示
不出来怎么办?vue
显示
图片
1、近期在学习Vue中发现了一个难点就是
显示
图片
<img> 试了很多办法都不行,有的还保错。后来我找了很多人,以及网上找资料终于被我给找到了。 2、如何你是一个普通组件的话,那么这样就可以了 &...
【git】Github 上的 markdown 文件怎么上传并
显示
图片
?
【git】Github 上的 markdown 文件怎么上传并
显示
图片
?
碰到文件名目录名或卷标语法不
正确
怎样解决?
硬盘打不开文件名目录名或卷标语法不
正确
,是因为这个硬盘的文件系统内部结构损坏导致的。碰到文件名目录名或卷标语法不
正确
怎样解决?具体的恢复方法看正文 碰到文件名目录名或卷标语法不
正确
怎样解决? 工具/...
Java SE
62,614
社区成员
307,326
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章