Java 同一窗口中的图片和文本
这个程序应该打开一个窗口,添加一张图片,然后在图片上方添加文本“hello world”。当我使用frame.add(标签)并尝试添加图片(如代码所示)时,文本会出现,但即使我使用相反的方法并首先添加图片,我也只能得到一个灰色的schreen。有人能告诉我怎样才能同时得到图片和文字吗Java 同一窗口中的图片和文本,java,swing,jlabel,imageicon,Java,Swing,Jlabel,Imageicon,这个程序应该打开一个窗口,添加一张图片,然后在图片上方添加文本“hello world”。当我使用frame.add(标签)并尝试添加图片(如代码所示)时,文本会出现,但即使我使用相反的方法并首先添加图片,我也只能得到一个灰色的schreen。有人能告诉我怎样才能同时得到图片和文字吗 public window(){ JFrame frame = new JFrame("name"); JLabel label = new JLabel ("hello world", JLa
public window(){
JFrame frame = new JFrame("name");
JLabel label = new JLabel ("hello world", JLabel.CENTER);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setResizable(false);
frame.setSize(600, 400);
frame.setVisible(true);
label.setAlignmentX(0);
label.setAlignmentY(0);
frame.add(label);
frame.add(new JLabel(new ImageIcon("file")));;
}
}
您应该使用
overlay
布局,但它适用于JPanel
因此,在框架中添加JPanel
,然后应用布局
,最后添加组件
您的代码可能如下所示:
public window(){
JFrame frame = new JFrame("name");
JLabel label = new JLabel ("hello world", JLabel.CENTER);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel panel = new JPanel() {
public boolean isOptimizedDrawingEnabled() {
return false;
}
};
LayoutManager overlay = new OverlayLayout(panel);
panel.setLayout(overlay);
frame.setResizable(false);
frame.setSize(600, 400);
frame.setVisible(true);
label.setAlignmentX(0);
label.setAlignmentY(0);
panel.add(label);
panel.add(new JLabel(new ImageIcon("file")));
frame.add(panel, BorderLayout.CENTER);
}
}
标签可以包含文本和图标,并且可以自定义相对位置
JLabel label = new JLabel ("hello world", new ImageIcon("file"), JLabel.CENTER);
label.setVerticalTextPosition(SwingConstants.TOP);
frame.add(label);
//frame.add(new JLabel(new ImageIcon("file")));;
默认布局为BorderLayout,add(label,BorderLayout.CENTER)
1)new ImageIcon(“文件”)
此图像是您提供的还是用户提供的?确切的文件名是什么?2) frame.setVisible(true)代码>这应该在最后完成。3) 添加两个组件(在本例中)将导致只有一个可见。