gpt4 book ai didi

java - 使用边框布局的 JPanel 定位不起作用

转载 作者:行者123 更新时间:2023-11-30 06:21:17 25 4
gpt4 key购买 nike

我正在尝试使用 i.add(jp, BorderLayout.EAST); 将我的 JPanel 位置设置到右侧,但它不起作用。任何想法为什么?提前感谢您的帮助。

/* INSTANCE DECLARATIONS */
private JTextField tf;//text field instance variable
private JLabel jl2;//label instance variable


/*****************
* WINDOW METHOD *
* ***************/
public void window() {

LoadImageApp i = new LoadImageApp();//calling image class

JFrame gameFrame = new JFrame();//declaration
JPanel jp = new JPanel();
JLabel jl = new JLabel("Enter a Letter:");//prompt with label

tf = new JTextField(1);//length of text field by character
jl2 = new JLabel("Letters Used: ");

jp.add(jl);//add label to panel
jp.add(tf);//add text field to panel
jp.add(jl2);//add letters used

gameFrame.add(i); //adds background image to window
i.add(jp, BorderLayout.EAST); // adds panel containing label to background image panel

gameFrame.setTitle("Hangman");//title of frame window
gameFrame.setSize(850, 600);//sets size of frame
gameFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//exit when 'x' button pressed
gameFrame.setIconImage(new ImageIcon("Hangman-Game-grey.png").getImage());//set the frame icon to an image loaded from a file
gameFrame.setLocationRelativeTo(null);//window centered
gameFrame.setResizable(false);//user can not resize window
gameFrame.setVisible(true);//display frame


}//end window method

最佳答案

您的 LoadImageApp 实例 i 使用什么布局管理器?我敢打赌它不是 BorderLayout。我敢打赌 LoadImageApp 类扩展了 JPanel 如果是这样并且如果您从未明确设置它的布局,那么它默认使用 FlowLayout ,正如您所发现的,FlowLayout 不遵守 BorderLayout.EAST int 常量。

解决方案可能非常简单:使用BorderLayout:

setLayout(new BorderLayout());

编辑
您在评论中声明:

When I set the border layout of i to EAST, my background image shifts to the right also, is there a way to get around that?

不,你没有捕获重点。您需要将 LoadImageApp 的布局设置为 BorderLayout。您不应该添加 i BorderLayout.EAST。这从来没有被推荐给你。

即,

public class LoadImageApp extends JPanel {

// in the constructor
public LoadImageApp() {
setLayout(new BorderLayout());
}

// .... etc....
}

LoadImageApp 实例(我会命名为 loadImageApp,而不是 i),应该添加 BorderLayout.CENTER,这是您之前所做的。请阅读您可以找到的布局管理器教程 here .

关于java - 使用边框布局的 JPanel 定位不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20723684/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com