1

我想做一些画成一个大的BufferedImage,然后在 aJFrame和 a中显示JScrollPane。我尝试了以下方法

import java.awt.*;
import java.awt.image.*;
import javax.swing.*;

public class FrameImage {
    private static void createAndShowGUI() {
       BufferedImage image;
       Graphics bufG;
       JFrame frame;
       JPanel panel;
       JLabel picLabel;

       frame = new JFrame("FrameTest");
       frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

       image=new BufferedImage(400, 300, BufferedImage.TYPE_INT_ARGB);
       bufG=image.createGraphics();
       bufG.setColor(Color.red);
       bufG.drawString("Testing",100,100);

       panel = new JPanel();
       panel.setBackground(Color.BLUE);
       panel.setPreferredSize(new Dimension(1500, 1500));
       panel.setLayout(null);
       picLabel = new JLabel(new ImageIcon(image));
       panel.add(picLabel);

       frame.add(new JScrollPane(panel));
       frame.setVisible(true);
       frame.setSize(800, 500);
    }

    public static void main(String[] args) {
        javax.swing.SwingUtilities.invokeLater(new Runnable() {
            public void run() {
                createAndShowGUI();
            }
        });
    }
}

但是文本“测试”没有出现在我的 JFrame 中。我在这里想念什么?

4

1 回答 1

3

如果我注释掉该行

panel.setLayout(null);

我看到您的带有图像的 JLabel 出现了。您将需要调整布局以使其显示出来。

于 2013-10-26T22:48:37.347 回答