当前位置: 首页 > 知识库问答 >
问题:

无法更改Swing(Java)中的按钮或面板位置

叶英哲
2023-03-14

我无法更改java swing中“setbounds”中按钮或面板的位置。它只是粘在上面。我应该在这里换什么?我应该在按钮上添加“Gridlayout”吗?更改面板位置对按钮没有任何作用。

公共课主课{

public static void main(String[] args) {

    // Declaring In-Game Variables
    final int[] cookieamount = {1};

    // Creating the components
    JLabel cookiecounter = new JLabel();
    JFrame window = new JFrame();
    JButton cookiebutton = new JButton();
    JPanel panel = new JPanel();


    // Window Properties
    window.setSize(900, 550);
    window.setTitle("Cooke Clicker");
    window.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
    window.setVisible(true);
    window.setBackground(Color.BLUE);

    // Panel Properties
    panel.setBounds(1,1,350,350);
    panel.setBackground(new Color(24, 44, 44));

    // Cookie Counter Properties
    cookiecounter.setLocation(50,50);
    cookiecounter.setForeground(new Color(255, 255, 255));
    cookiecounter.setFont(new Font("Comic Sans MS", Font.BOLD, 60));

    // Cookie Button Properties
    cookiebutton.setBounds(200,200,300,300);
    cookiebutton.setSize(150,50);
    cookiebutton.setIcon(new ImageIcon("assets/cookie.png"));
    cookiebutton.setContentAreaFilled(false);
    cookiebutton.setFocusPainted(false);
    cookiebutton.setBorder(null);

    // Set Cookie Counter text to amount of cookies

    cookiebutton.addActionListener(new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent e) {
            cookieamount[0]++;
            cookiecounter.setText(String.valueOf(cookieamount[0]));
        }
    });



    // Adding Components to window
    window.setContentPane(panel);
    window.add(cookiecounter);
    panel.add(cookiebutton);
    window.getContentPane();
}
}

共有1个答案

段超
2023-03-14

在JavaSwing中,布局管理器决定包含的组件放在哪里。JFrame的默认布局是FlowLayout,它将所有元素放在流的方向上。

如果你想自由放置组件,你必须“禁用”你的布局。

window.setLayout(null);

这应该如预期的那样工作。

 类似资料:
  • 这是我的第一个实现,但是我扩展了JFrame,将所有这些都放在一个框架中,然后我意识到我需要使用cardlayout来从主菜单切换到播放场景,所以我将它拆分为一个类main frame和mainmenu、play scene、game over scene等其他类。所以我的mainmenu现在扩展了JPanel,当我向button panel添加按钮,然后向mainpanel添加buttonpan

  • 问题内容: 我有以下代码: 如您所见,我要在单击按钮时更改大小。可能吗?上面的代码不起作用,我的意思是大小没有改变。如何动态更改尺寸? 感谢致敬。编辑: 交换选择一个JList行的面板。 ViewPanel#changeView(),这将交换面板: 问题答案: 使用布局管理器时,永远不要使用setSize()。布局管理器的工作是确定大小。您可以通过设置指定的大小或最小或最大大小来向布局管理器提供提

  • 我正在开发一个Swing gui。我有一个“Save”(保存)按钮,我希望它删除一个条目,而不是在按住Alt键时单击该条目。检查单击按钮时是否按住alt键没有问题。这不是这个问题的主题。 当按下Alt时,我希望“Save”(保存)按钮的文本更改为“Delete”(删除),当松开Alt时,返回到“Save”(保存)。 我曾尝试向我的JPanel添加一个KeyListener,但它似乎没有激活,可能是

  • 我正在尝试使用我的风格中的colorButtonNormal使我的应用程序中的所有按钮都具有默认颜色。 它在API 21及以上版本上运行良好,但在API 21下,它只更改了一些按钮的背景,我不知道出了什么问题。 styles.xml v21/样式。xml 结果: Lollipop 和 奇巧 有什么建议吗?

  • 问题内容: 应用 http://code.jquery.com/mobile/1.3.2/jquery.mobile-1.3.2.min.css和 http://code.jquery.com/mobile/1.3.2/jquery.mobile后-1.3.2.min.js 无法通过脚本更改按钮的文本 有没有类似的经验并有解决方案? 可以从 FIDDLE 尝试DEMO **** JQUERY: H

  • 应用http://code.jquery.com/mobile/1.3.2/jquery.mobile-1.3.2.min.css和http://code.jquery.com/mobile/1.3.2/jquery.mobile-1.3.2.min.js后 无法通过脚本