Fra*_*ani 4 java swing jlabel imageicon
我使用a JLabel来查看图像JFrame.我从一个文件加载它ImageIcon.
JFrame frame = new JFrame(String);
frame.setLocationByPlatform(true);
frame.setSize(500, 500);
frame.setResizable(false);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JLabel cpu = new JLabel(new ImageIcon(String));
cpu.setLocation(20, 20);
cpu.setSize(20, 460);
frame.add(cpu);
frame.setVisible(true);
Run Code Online (Sandbox Code Playgroud)

我无法设置位置和大小,JLabel因为它是自动完成的.

我必须手动设置这些值,因为我想截断图像(垂直进度条).
一种方法是只绘制图像:
final ImageIcon icon = new ImageIcon(path);
JPanel panel = new JPanel() {
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
g.drawImage(icon.getImage(), 0, 0, getWidth(), getHeight(), this);
}
@Override
public Dimension getPreferredSize() {
return new Dimension(500, 500);
}
};
frame.add(panel);
Run Code Online (Sandbox Code Playgroud)
的getWidth()和getHeight()在drawImage将强制图像以拉伸面板的尺寸.此外,getPreferredSize()还将为面板提供尺寸.
如果希望面板保持这个大小,那么确保它的父容器有一个布局管理器,它将遵循首选大小,如FlowLayout或GridBagLayout.如果您希望拉伸面板,请确保它的父容器有一个布局管理器,忽略首选大小,如BorderLayout或GridLayout
请参阅在容器中布置组件以了解有关布局管理器(您应该使用的)的更多信息.另请参阅为什么在SWING中使用null布局不赞成?和什么是错的空布局在Java中?
| 归档时间: |
|
| 查看次数: |
2948 次 |
| 最近记录: |