java图像的永久位置?
我的工作有问题。 我想做的是,我希望我的形象有一个特定的或永久的位置。 但每次我调整窗口大小时,图像也会改变位置。当我使用。setresizeable(false),我看不到文本和图像
import java.awt.*;
import javax.swing.*;
public class ProgDraft extends JFrame {
private ImageIcon image1;
private JLabel label1;
ProgDraft() {
JPanel panel = new JPanel();
panel.setLayout(new FlowLayout());
ImageIcon pics = new ImageIcon(getClass().getResource("l.png"));
JLabel logo = new JLabel(pics);
panel.setBounds(100,100,100,100);
panel.add(logo);
JLabel title = new JLabel("Testing Title");
panel.add(title);
getContentPane().setLayout(new BorderLayout());
getContentPane().add(panel);
getContentPane().add(logo, BorderLayout.CENTER);
getContentPane().add(title, BorderLayout.NORTH);
}
}
这是主要问题
import javax.swing.*;
import java.awt.*;
public class ProgDraftMain {
public static void main(String args[]) {
ProgDraft gui = new ProgDraft();
gui.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
gui.setResizable(false);
gui.setVisible(true);
//gui.pack();
gui.setSize(500 , 300);
}
}
谢谢!
# 1 楼答案
您已经将徽标添加到面板中,但是您尝试再次将徽标添加到内容窗格中(与标题相同)。对面板的第一次添加被否定,这是不好的,因为您需要FlowLayout来保持位置。每个组件只能有一个父组件。不要将徽标添加到内容窗格中。只需添加面板,并使面板的布局
new FlowLayout(FlowLayut.LEADING)
。这将把标签放在面板的最左边。然后,可以为标签添加空边框,为标签添加间距学习使用不同的布局管理器。不要试图依赖像素的完美位置。见Laying out Components Within a Container
还可以看看How to Use Borders