将一些图片添加到BuffredImage然后保存

时间:2015-07-29 09:27:25

标签: java swing jpanel jlist sprite-sheet

我的一般想法是制作Sprite-Sheet-Maker我的意思是该程序将:

  
      
  1. 收集多张图片,如" 1.bmp" ," 2.png"和" 3.jpg"
  2.   
  3. 创建新的BuffredImage变量并在其上绘制3张图片(并在同一时间在JPanel上绘制BuffredImage)
  4.   
  5. 保存最终图片" Final.png"
  6.   

我想在一个循环中制作第一步和第二步,因为我有JList所有照片的路径。

为了做到这一点,我在eclipse上使用了Java窗口构建器,我制作了表单,并尝试在Panel上测试一个简单的代码。

Panel panel = new Panel(); //Work
panel.setBackground(Color.BLUE); //Work
BufferedImage img = new BufferedImage(5,5,5); //Work
Graphics g = null ; //Work
panel.paintComponents(g); //work
g.setColor(Color.BLACK); //ERROR---------------------ERROR
g.fillRect(0, 0, 50, 50);

这个问题不仅存在于代码中,而且存在于所有想法中,所以请您的任何想法都可以帮助我甚至是我项目的一部分解决方案的一部分,所以请评论你有任何想法。

2 个答案:

答案 0 :(得分:1)

 g.setColor(Color.BLACK);//error

  Graphics g = null ;//null value, you are not create any obeject

null值后,我们无法执行任何操作。

您必须覆盖paintComponent课程中的JPanel方法,然后您才会收到Graphics个对象。

      JPanel panel = new JPanel() {
            @Override
            public void paintComponent(Graphics g) {
                super.paintComponent(g);
                g.setColor(Color.BLUE);
                g.fillRect(0, 0, 100, 100);
            }
        };
        frame.add(panel);//added to frame.

See this link

答案 1 :(得分:0)

  1. 使用GridLayout
  2. 创建JPanel
  3. 创建3个JLabel,每个JLabel包含每个图像的图标。然后将每个标签添加到面板中。
  4. 要创建任何Swing组件的图像,您可以使用Screen Image类。