public class Main{
public static void main(String []args){
JLabel c=new JLabel();
c.setIcon(new ImageIcon("picture.png"));
JFrame frame = new JFrame();
frame.setBackground(Color.WHITE);
frame.setUndecorated(true);
frame.getContentPane().add(c);
frame.pack();
BufferedImage bi = new BufferedImage(c.getWidth(), c.getHeight(), BufferedImage.TYPE_INT_ARGB);
Graphics2D graphics = bi.createGraphics();
c.print(graphics);
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
e.printStackTrace();
}
graphics.dispose();
frame.dispose();
}
}
大家好!我只是试图在屏幕上打印没有任何框架的图像。我认为,这段代码应该将图像打印到屏幕上;等待两秒然后处理掉它。我做错了什么?
B.T.W我没有任何错误,程序只能活2秒然后死亡。
答案 0 :(得分:1)
您的图片在JLabel中。如果JLabel所在的框架没有显示,为什么要在屏幕上打印?
您已经将框架设置为未修饰的。在框架上设置可见效果。
答案 1 :(得分:0)
您最后不需要图形部分,也忘记调用setVisible(true);
public class Main{
public static void main(String []args){
JLabel c=new JLabel();
c.setIcon(new ImageIcon("picture.png"));
JFrame frame = new JFrame();
frame.setBackground(Color.WHITE);
frame.setUndecorated(true);
frame.getContentPane().add(c);
frame.pack();
frame.setVisible(true);
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
e.printStackTrace();
}
frame.dispose();
}
}