【问题标题】:Adding some pictures to a BuffredImage then Save it将一些图片添加到 BufferedImage 然后保存
【发布时间】:2015-10-20 04:41:49
【问题描述】:

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

  1. 收集多张图片,例如“1.bmp”、“2.png”和“3.jpg”
  2. 创建新的 BuffredImage 变量并在其上绘制 3 张图片(同时在 JPanel 上绘制 BuffredImage)
  3. 保存最终图片“Final.png”

我正在考虑在一个循环中进行第一步和第二步,因为我有一个 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);

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

【问题讨论】:

    标签: java swing jpanel jlist sprite-sheet


    【解决方案1】:
     g.setColor(Color.BLACK);//error
    

    自从

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

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

    您必须在JPanel 类中覆盖paintComponent 方法,然后您将收到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

    【讨论】:

    • 好的,如何将“Graphics g”与 JPanel 关联起来??
    • 你想添加到面板吗?
    • 我希望能够在 jpanel 上画画
    • 覆盖paintComponent 方法。看到那个链接
    【解决方案2】:
    1. 使用GridLayout 创建一个JPanel。
    2. 创建 3 个 JLabel,每个 JLabel 包含每个图像的图标。然后将每个标签添加到面板中。
    3. 要创建任何 Swing 组件的图像,您可以使用 Screen Image 类。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多