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类及设置背景 的方法改变背景图片
元詹抗乙: 参考下面代码:其中图片可以自己找.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就知道了.