社区
Java SE
帖子详情
如何正确显示图片?
danseshi
2005-08-17 09:20:10
用getImage(getDoucmentBase(),xxx.gif);和drawImage(),怎么不能在JPanel中画啊?如何在组件中显示图片(不用JButton(Icon)和JLabel(Icon)显示图标的形式),比如在JPanel中,而不是通过继承JApplet在浏览器中显示。怎么才能实现呢?
在应用程序里(不在浏览器中显示),有背景图片和活动图片,活动图片运动时,怎么才能正确显示背景图片呢?
谢谢!
...全文
415
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");
Spyder
图片
无法
显示
?plt.title()无法
显示
中文?
Spyder
图片
无法
显示
?plt.title()无法
显示
中文? Spyder
图片
无法
显示
代码
正确
但是plt.show运行结果并不
显示
图片
设置完成后运行结果会正常
显示
plt.title()无法
显示
中文 这是因为 plt.title()默认内容是英文 解决这个问题,只需添加两行代码 plt.rcParams['font.sans-serif']=['SimHei'] plt.rcParams['axes.unicode_minus'] = False 问题解决~ ...
360浏览器打开html不能正常
显示
图片
,360浏览器网页不
显示
图片
?如何
显示
出来...
有很多用户在使用360浏览器的时候碰到了无法
显示
图片
的问题,那么要如何解决这个问题呢,今天就让我们一起来看看,如何使用浏览器
正确
的打开浏览器使用,帮助用户找出无法
显示
图片
的原因和解决的办法,今天小编就会为大家分享一下我自己的解决办法,让用户随时都可以享受最便捷的浏览器付我,使用浏览器快速
显示
图片
,为用户解决这个难题,具体的操作方法如下,那么就让我们一起来看看是如何操作的吧!用户随时都可以学习、操作...
【git】Github 上的 markdown 文件怎么上传并
显示
图片
?
【git】Github 上的 markdown 文件怎么上传并
显示
图片
?
碰到文件名目录名或卷标语法不
正确
怎样解决?
文件夹无法访问文件名变乱码的恢复方法 硬盘打不开文件名目录名或卷标语法不
正确
,是因为这个硬盘的文件系统内部结构损坏导致的。碰到文件名目录名或卷标语法不
正确
怎样解决?具体的恢复方法看正文 碰到文件名目录名或卷标语法不
正确
怎样解决? 工具/软件:AornData软件 步骤1:先百度搜索并下载程序打开后,选中需要恢复的盘,然后点《开始恢复》按钮 碰到文件名目录名或卷标语法不
正确
怎样解决? 步骤2:软件找出资料后,会放到与要恢复盘同名的目录中 碰到文件名目录名或卷标语法...
Latex 交叉引用
图片
时编译没有问题,pdf 文件中却
显示
?? 或者不
显示
------ 解决方案
最近写report 遇到一个问题,就是在
图片
或表格的交叉引用时, 便已没有问题,正文中相应位置
显示
?? 或者不
显示
, 查了相关资料之后发现问题出在\label{}和\caption{} 的前后顺序上。 问题如下: \documentclass{article} \usepackage{booktabs} \begin{document} The price of several fruits ...
Java SE
62,629
社区成员
307,261
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章