社区
Java SE
帖子详情
如何正确显示图片?
danseshi
2005-08-17 09:20:10
用getImage(getDoucmentBase(),xxx.gif);和drawImage(),怎么不能在JPanel中画啊?如何在组件中显示图片(不用JButton(Icon)和JLabel(Icon)显示图标的形式),比如在JPanel中,而不是通过继承JApplet在浏览器中显示。怎么才能实现呢?
在应用程序里(不在浏览器中显示),有背景图片和活动图片,活动图片运动时,怎么才能正确显示背景图片呢?
谢谢!
...全文
407
9
打赏
收藏
如何正确显示图片?
用getImage(getDoucmentBase(),xxx.gif);和drawImage(),怎么不能在JPanel中画啊?如何在组件中显示图片(不用JButton(Icon)和JLabel(Icon)显示图标的形式),比如在JPanel中,而不是通过继承JApplet在浏览器中显示。怎么才能实现呢? 在应用程序里(不在浏览器中显示),有背景图片和活动图片,活动图片运动时,怎么才能正确显示背景图片呢? 谢谢!
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用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()无法
显示
中文?
代码
正确
但是plt.show运行结果并不
显示
图片
设置完成后运行结果会正常
显示
plt.title()无法
显示
中文 这是因为 plt.title()默认内容是英文 解决这个问题,只需添加两行代码 plt.rcParams['font.sans-serif...
360浏览器打开html不能正常
显示
图片
,360浏览器网页不
显示
图片
?如何
显示
出来...
有很多用户在使用360浏览器的时候碰到了无法
显示
图片
的问题,那么要如何解决这个问题呢,今天就让我们一起来看看,如何使用浏览器
正确
的打开浏览器使用,帮助用户找出无法
显示
图片
的原因和解决的办法,今天小编就会...
【git】Github 上的 markdown 文件怎么上传并
显示
图片
?
【git】Github 上的 markdown 文件怎么上传并
显示
图片
?
碰到文件名目录名或卷标语法不
正确
怎样解决?
硬盘打不开文件名目录名或卷标语法不
正确
,是因为这个硬盘的文件系统内部结构损坏导致的。碰到文件名目录名或卷标语法不
正确
怎样解决?具体的恢复方法看正文 碰到文件名目录名或卷标语法不
正确
怎样解决? 工具/...
Latex 交叉引用
图片
时编译没有问题,pdf 文件中却
显示
?? 或者不
显示
------ 解决方案
最近写report 遇到一个问题,就是在
图片
或表格的交叉引用时, 便已没有问题,正文中相应位置
显示
?? 或者不
显示
, 查了相关资料之后发现问题出在\label{}和\caption{} 的前后顺序上。 问题如下: \documentclass{...
Java SE
62,635
社区成员
307,269
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章