在 jframe 中设置按钮的位置不起作用

我有一个方法,就是向 JPanel 添加一个按钮。但是,我有一个问题,该按钮的某些属性我无法修改。


setBackground和setLocation方法根本不影响按钮。我试图将按钮移动到底部,JPannel但当我尝试设置水平对齐或位置时似乎没有发生任何事情。


    public static void initButtons() {

        JButton purchaseButton = new JButton();

        purchaseButton.setText("Proceed to Checkout");

        purchaseButton.setPreferredSize(new Dimension(200,50));

        purchaseButton.setIcon(new ImageIcon("/Users/alecr/eclipse-workspace/MakingPurchases/src/shopping_cart_sprite.png"));

// set location method not working

        purchaseButton.setLocation(25, 600);


        JPanel firstPanel = new JPanel(); 

        firstPanel.setBounds(25, 40, 300, 700);

        firstPanel.setBackground(new java.awt.Color(90,90,100));

        firstPanel.setBorder(BorderFactory.createStrokeBorder(new BasicStroke(3.0f), new Color(70,70,80)));

        frame.add(firstPanel);


        firstPanel.add(purchaseButton);

    }


梦里花落0921
浏览 71回答 1
1回答

撒科打诨

您应该使用适当的 LayoutManager并让它为您完成工作,而不是为每个组件使用setLocation和。硬编码尺寸和位置将不允许您的应用程序针对不同的屏幕尺寸进行扩展,并且您将无法调整大小,这对用户来说不太友好。setBoundsJFrame但是,如果您坚持使用绝对硬编码值(坐标和尺寸),则必须从容器中删除布局管理器(默认情况下JPanel 使用 FlowLayout),因为就像我提到的,它会处理这些事情。为了做到这一点:JPanel panel = new JPanel(null); //null layout manager allows absolute values
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java