java怎么在JFrame中显示动态图片?

作者&投稿:印妻 (若有异议请与网页底部的电邮联系)
JAVA图形界面,怎么让背景图片正好充满JFrame?~

最简单的方法:
JFrame mainframe = new JFrame("五子棋");
mainframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel cp = (JPanel) mainframe.getContentPane();
cp.setLayout(new BorderLayout());
ImageIcon background = new ImageIcon("D:\\java documents\\Gobang\\棋盘.jpg");
JLabel label=new JLabel(background);
cp.add("Center", label);
mainframe.pack();
mainframe.setVisible(true);
不管用哪种方法,由于窗口有最小大小限制(主要是要显示标题栏上的按钮,所以如果设置成不要按钮,就可以不用本限制,但Jframe不好办,需要用其他类型的窗口),所以如果图片过窄的话,两边会显示空白。

java在JFrame上画东西,主要是使用paint方法,代码如下:
import java.awt.Color;import java.awt.Graphics;import javax.swing.JFrame;import javax.swing.JPanel;public class Draw extends JFrame{JPanel jPanel=new JPanel();public Draw() { jPanel.setBackground(Color.red); add(jPanel); Drawation drawaction=new Drawation();//添加画图,把上面jpanel的设置给覆盖了;要是先添加画图再添加 add(drawaction); //jpanel则把画图覆盖了 }public static void main(String[] args){ Draw draw=new Draw(); draw.setTitle("abc"); draw.setSize(300,300); draw.setVisible(true); draw.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);}}class Drawation extends JPanel{ public void paintComponent(Graphics g){ super.paintComponents(g); g.drawString("agagh", 50, 45); }} 运行结果如下:

试了一下,从网上找了个GIF

可以用啊

--------------------------------------------------------------------------------------------

import java.awt.Graphics;

import javax.swing.ImageIcon;

import javax.swing.JFrame;

import javax.swing.JPanel;

public class ImageApp extends JFrame {

public ImageApp() {

setDefaultCloseOperation(EXIT_ON_CLOSE);

setLocationRelativeTo(null);

setSize(400, 300);

setResizable(false);

getContentPane().setLayout(null);

JPanel panel = new ImagePanel();

panel.setBounds(0, 0, 400, 300);

getContentPane().add(panel);

setVisible(true);

}

public static void main(String[] args) {

new ImageApp();

}

class ImagePanel extends JPanel {

public void paint(Graphics g) {

super.paint(g);

// ImageIcon icon = new ImageIcon("D:\\1.jpg");

ImageIcon icon = new ImageIcon("D:\\14405937jqhjsppeninjf9.gif");

g.drawImage(icon.getImage(), 0, 0, 400, 300, this);

}

}

}



import java.awt.Graphics;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class ImageApp extends JFrame {
public ImageApp() {
setDefaultCloseOperation(EXIT_ON_CLOSE);
setLocationRelativeTo(null);
setSize(400, 300);
setResizable(false);
getContentPane().setLayout(null);
JPanel panel = new ImagePanel();
panel.setBounds(0, 0, 400, 300);
getContentPane().add(panel);
setVisible(true);
}
public static void main(String[] args) {
new ImageApp();
}
class ImagePanel extends JPanel {
public void paint(Graphics g) {
super.paint(g);
// ImageIcon icon = new ImageIcon("D:\\1.jpg");
ImageIcon icon = new ImageIcon("D:\\14405937jqhjsppeninjf9.gif");
g.drawImage(icon.getImage(), 0, 0, 400, 300, this);
}
}
}

将gif的动态图片拆成一帧一帧的图片,用Time类及设置背景 的方法改变背景图片


海城市17837581987: java怎么在JFrame中显示动态图片 -
元詹抗乙: 参考下面代码:其中图片可以自己找.import java.awt.Graphics; import javax.swing.ImageIcon; import javax.swing.JFrame; import javax.swing.JPanel; public class ImageApp extends JFrame { public ImageApp() { setDefaultCloseOperation(EXIT_...

海城市17837581987: java怎么在JFrame中显示动态图片? -
元詹抗乙: 试了一下,从网上找了个GIF 可以用啊-------------------------------------------------------------------------------------------- import java.awt.Graphics; import javax.swing.ImageIcon; import javax.swing.JFrame; import javax.swing.JPanel; public class ImageApp ...

海城市17837581987: java 怎么在一个JLabel上显示动态时间 用线程 -
元詹抗乙: import java.awt.*; import java.awt.event.*; import javax.swing.*; import java.util.*; public class FrameTest { public static void main(String[] args) { JFrame f = new MyFrame(); f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); f.setVisible(true); } } ...

海城市17837581987: JAVA怎么在JAVA Swing 界面上显示动态的当前时间~~~~ -
元詹抗乙: package com.exam.student.reserve; import java.awt.*; import javax.swing.*; import java.util.*; public class Time extends JFrame { JPanel pnlmain; static JLabel lblmove; JButton bntcontrol; currenttime ct; public Time() { pnlmain=new JPanel(); this....

海城市17837581987: Java如何实现文本区JTextArea能显示动态信息?
元詹抗乙: ta.setText(ta.getText+"\n"+"每一行中出现的数据"); Thread.getCurrentThread().sleep(1000);//每隔一秒刷新 repaint(); 思路是这样,具体的代码实现自己弄弄,挺简单的,就是线程知识

海城市17837581987: java swing如何在JFrame窗口外显示组件? -
元詹抗乙: 可以绝对定位,setBounds 也可以使用布局 ~~~~~~~~

海城市17837581987: java 怎么实现在不同显示器上显示JFrame -
元詹抗乙: :获取屏幕的宽度和高度,然后在location 方法里进行设置边界是它们的一半,如 package JieMian; import java.awt.Toolkit; import javax.swing.JFrame; @SuppressWarnings("serial") public class juzhong extends JFrame

海城市17837581987: Java如何实现文本区JTextArea能显示动态信息? -
元詹抗乙: 1L说得对,动不动太取决于你给组件传递信息的方法,也就是用线程设定一个任务,每隔一段时间先组件传递信息,你可以在任务中判断传递信息的有效性(例如空值,没价值的信息等)再决定什么是否发送给组件,

海城市17837581987: Java的,怎样让画面动起来. -
元詹抗乙: 使用 Graphics 类 画“@”字符串 再添加一个线程 执行画“@”字符串这个方法

海城市17837581987: 在Java中怎样做才能让JFrame的对象在电脑屏幕中心显示啊,帮帮忙~!
元詹抗乙: myWindow.setBouns(); 可以设置坐标. 大概是这个方法.你查下API就知道了.

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网