Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/309.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
Java 试图在JPanel上绘制图像_Java_Image_Jpanel - Fatal编程技术网

Java 试图在JPanel上绘制图像

Java 试图在JPanel上绘制图像,java,image,jpanel,Java,Image,Jpanel,对不起,伙计们,我知道关于这个话题有很多信息,但我还是被卡住了。我有两个面板,主面板和侧面板。我要做的是在侧面板上画一个图像。我的侧面板将有其他组件,如按钮和标签。我可以使用JLabel将图像添加到侧面板,但是,图像的大小和定位是一个问题。因此,我尝试用图形g将图像绘制到侧面板上。如果有人能帮忙,我将不胜感激。谢谢你的帮助 import java.awt.Color; import java.awt.Dimension; import java.awt.Graphics; import java

对不起,伙计们,我知道关于这个话题有很多信息,但我还是被卡住了。我有两个面板,主面板和侧面板。我要做的是在侧面板上画一个图像。我的侧面板将有其他组件,如按钮和标签。我可以使用JLabel将图像添加到侧面板,但是,图像的大小和定位是一个问题。因此,我尝试用图形g将图像绘制到侧面板上。如果有人能帮忙,我将不胜感激。谢谢你的帮助

import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Image;

import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;



       public class Gui extends JFrame {
    private JPanel j;
    private ImageIcon i;

    public Gui(){
        this.setSize(800,600);
        this.setUp();
        this.setVisible(true);
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }
    void setUp(){
        j = new JPanel();
        JPanel contentPanel = new JPanel();
        contentPanel.setLayout(new BorderLayout());
        contentPanel.setSize(new Dimension(800,600));
        JPanel mainPanel = new JPanel();
        JPanel sidePanel = new JPanel();

        sidePanel.setPreferredSize(new Dimension(200,600));
        mainPanel.setPreferredSize(new Dimension(600,600));

        ImagePanel v = new ImagePanel();
        //v.setBackground(Color.BLUE);
        v.setPreferredSize(new Dimension(100,100));

        sidePanel.add(v);

        mainPanel.setBackground(Color.BLACK);
        sidePanel.setBackground(Color.RED);


        contentPanel.add(sidePanel, BorderLayout.WEST);
        contentPanel.add(mainPanel, BorderLayout.CENTER);

        this.add(contentPanel);


    }
       private class ImagePanel extends JPanel{
        public void createImage(Graphics g){
            super.paintComponent(g);
            ImageIcon i = new       ImageIcon("/GUI Practice/src/images.jpeg");
            Image ii = i.getImage();
            g.drawImage(ii, 10, 10, 90, 90, Color.WHITE, this);

            repaint();
            validate();
            updateUI();



        }

    }
           public static void main(String [] args){

        Gui g = new Gui();

    }

  }
`
摘自bcash的回答


你能提供一个你迄今为止所做工作的例子吗-
public class ImagePanel extends JPanel {

    private BufferedImage image;

    public ImagePanel() {
       try {                
          image = ImageIO.read(new File("image name and path"));
       } catch (IOException ex) {
            // handle exception...
       }
    }

    @Override
    protected void paintComponent(Graphics g) {
        super.paintComponent(g);
        g.drawImage(image, 0, 0, null); // see javadoc for more info on the parameters            
    }

}