Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/370.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在JavaSwing的jframe中添加图像?_Java_Image_Swing_Jframe - Fatal编程技术网

如何在JavaSwing的jframe中添加图像?

如何在JavaSwing的jframe中添加图像?,java,image,swing,jframe,Java,Image,Swing,Jframe,如何添加图像。我只想将图像添加到行的上方,而不是整个jframe上。如何在jframe swing中执行此操作。我试过了,但我可以在整个屏幕上设置背景图像。我只需要在线条上方设置背景 import java.awt.*; import java.awt.event.*; import java.awt.geom.Line2D; import javax.swing.*; import java.sql.*; public class Demo1 extends JFrame { publi

如何添加图像。我只想将图像添加到行的上方,而不是整个jframe上。如何在jframe swing中执行此操作。我试过了,但我可以在整个屏幕上设置背景图像。我只需要在线条上方设置背景

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(图像img,int x,int y,ImageObserver)


制作一个
JLabel
并将其添加到
中,要添加图像,可以使用
g.drawImage(图像img,int x,int y,ImageObserver)
函数中的


制作一个
JLabel
并将其添加到
中,要添加图像,可以使用
g.drawImage(图像img,int x,int y,ImageObserver)
函数中的


制作一个
JLabel
并将其添加到
中,要添加图像,可以使用
g.drawImage(图像img,int x,int y,ImageObserver)
函数中的

制作一个
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);
//全球宣言

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);
//全球宣言

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);
//全球宣言

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);

JFrame
甚至有
paintComponent
方法吗?你的想法是对的。但也可能建议使用
JPanel
来绘制,使用
paintComponent
方法
JFrame
和其他顶级组件不应在其上喷漆,因为它们已经承载了喷漆组件的负载,并且没有双缓冲。
JFrame
甚至有
paintComponent
方法吗?您的想法是对的。但也可能建议使用
JPanel
来绘制,使用
paintComponent
方法
JFrame
和其他顶级组件不应在其上喷漆,因为它们已经承载了喷漆组件的负载,并且没有双缓冲。
JFrame
甚至有
paintComponent
方法吗?您的想法是对的。但也可能建议使用
JPanel
来绘制,使用
paintComponent
方法
JFrame
和其他顶级组件不应在其上喷漆,因为它们已经承载了喷漆组件的负载,并且没有双缓冲。
JFrame
甚至有
paintComponent
方法吗?您的想法是对的。但也可能建议使用
JPanel
来绘制,使用
paintComponent
方法
JFrame
和其他顶级组件不应在其上绘制,因为它们已经承载了绘制组件的负载,并且不是双缓冲区。为了OP和其他人的利益,对该代码进行一点ox解释,可以公正地回答这个问题。为了OP和其他人的利益,对该代码进行一点ox解释,我会公正地回答这个问题。为了OP和其他人的利益,对这个代码进行一点ox解释,我会公正地回答这个问题。为了OP和其他人的利益,对这个代码进行一点ox解释,我会公正地回答这个问题。