[英]How to add image in jframe in java swing?
如何添加圖像。 我只想在行上方而不是整個jframe上添加圖像,如何在jframe擺動中做到這一點。 我嘗試過但是我可以在整個screen上設置背景圖像。我只需要在行上方設置背景。
import java.awt.*;
import java.awt.event.*;
import java.awt.geom.Line2D;
import javax.swing.*;
import java.sql.*;
public class Demo1 extends JFrame
{
public void paint(Graphics g) {
super.paint(g); // fixes the immediate problem.
Graphics2D g2 = (Graphics2D) g;
Line2D lin = new Line2D.Float(20, 150, 1350, 150);
g2.draw(lin);
}
public Demo1( )
{
{
getContentPane().setBackground(new java.awt.Color(240,255,255));
}
this.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
Container c = getContentPane();
c.setLayout( new FlowLayout() );
setUndecorated(true);
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
setBounds(0,0,screenSize.width, screenSize.height);
}
public static void main( String[] args )
{
Demo1 frame = new Demo1();
frame.setVisible(true);
}
}
為了添加圖像,您可以在paint()
函數中使用g.drawImage(Image img, int x, int y, ImageObserver observer)
。
要么
制作一個JLabel
並向其中添加圖像圖標
//全球宣言
private BufferedImage bi;
//某處
try {
bi = ImageIO.read(new File("C:/1.jpg"));//Write path of your image here
} catch (IOException ex) {
Logger.getLogger(ClassName.class.getName()).log(Level.SEVERE, null, ex);//Change ClassName to your class Name
}
final JPanel panel = new JPanel(){
@Override
protected void paintComponent(Graphics g){
Graphics g2 = g.create();
g2.drawImage(bi, 0, 0, getWidth(), getHeight(), null);
g2.dispose();
}
@Override
public Dimension getPreferredSize(){
return new Dimension(bi.getWidth()/2, bi.getHeight()/2);
}
};
mainPanel.add(panel, BorderLayout.CENTER);
//Add other components to mainPanel
frm.add(mainPanel);
class MyImagePanel extends JPanel{
BufferedImage image;
public void paintComponent(Graphics g){
super.paintComponent(g);
if(image != null){
g.drawImage(image, 0, 0, this);
}
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.