如何在此JFrame上显示文本框?在JFrame本身之上构建所有内容也是一种好习惯吗?或者覆盖JPanel并在其上构建所有内容是否更好?
提前致谢!
public class GUI {
private static JFrame frame = new JFrame("FrameDemo");
public GUI() {
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
BufferedImage myImage = null;
try {
myImage = ImageIO.read(new File("C:/Users/Desktop/background.jpg"));
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
frame.setContentPane(new ImageFrame(myImage));
JTextField field = new JTextField(10);
frame.add(field, BorderLayout.SOUTH);
Dimension dimension = new Dimension();
dimension.setSize(950, 800);
frame.setSize(dimension);
frame.setVisible(true);
}
}
答案 0 :(得分:1)
您已使用自己的内容窗格替换了默认内容窗格。我猜你的内容窗格不使用布局管理器,因此永远不会显示文本字段。
尝试类似:
//frame.setContentPane(new ImageFrame(myImage));
ImageFrame content = new ImageFrame(myImage));
content.setLayout( new BorderLayout() );
frame.setContentPane(content);
现在,您应将文本字段添加到图像面板的南部。
在JFrame本身之上构建所有内容也是一种好习惯吗?或者覆盖JPanel并在其上构建所有内容是否更好?
JFrame的内容窗格是一个JPanel,所以你做什么并不重要,因为你将以任何一种方式使用面板。关键是管理内容窗格的布局管理器。