Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/355.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javax.swing中的默认JButton*_Java_Swing_Jbutton - Fatal编程技术网

javax.swing中的默认JButton*

javax.swing中的默认JButton*,java,swing,jbutton,Java,Swing,Jbutton,当我在JavaSwing中编译代码时,我得到了默认边界。占据整个帧大小的按钮。我试了3个按钮。首先,我得到了最后一个按钮作为默认值,然后我删除了最后一个按钮,我得到了两个按钮中的下一个按钮像前面一样得到了默认值。请帮我解决这个问题 !!() 预期结果:在第3帧中,按钮将并排出现。 实际结果:默认为一个按钮。在设置布局管理器之前,您正在调用f.setVisible(true),因此GUI将使用JFrame的默认BorderLayout显示,这意味着只显示最后添加的组件 一个糟糕的解决方案是先设置布

当我在JavaSwing中编译代码时,我得到了默认边界。占据整个帧大小的按钮。我试了3个按钮。首先,我得到了最后一个按钮作为默认值,然后我删除了最后一个按钮,我得到了两个按钮中的下一个按钮像前面一样得到了默认值。请帮我解决这个问题

!!()

预期结果:在第3帧中,按钮将并排出现。
实际结果:默认为一个按钮。

在设置布局管理器之前,您正在调用
f.setVisible(true)
,因此GUI将使用JFrame的默认BorderLayout显示,这意味着只显示最后添加的组件

一个糟糕的解决方案是先设置布局

更好的解决方案是学习并适当地使用布局管理器


非常感谢你,我知道了。
import javax.swing.*;
class rough{
    public static void main(String args[]){
        JFrame f=new JFrame("new");
        JButton b1=new JButton("click");
        JButton b2=new JButton("Hello");
        JButton b3=new JButton("like");
        b1.setBounds(20,20,100,50);
        b2.setBounds(120,20,100,50);
        b3.setBounds(220,20,100,50);
        f.add(b1);
        f.add(b2);
        f.add(b3);
        f.setSize(600,600);
        f.setVisible(true);
        f.setLayout(null);
    }
}
import java.awt.Dimension;
import java.awt.Font;
import java.awt.GridBagLayout;
import java.awt.GridLayout;
import javax.swing.*;

@SuppressWarnings("serial")
public class Rough2 extends JPanel {

    private static final int P_WIDTH = 600;
    private static final int P_HEIGHT = 400;

    public Rough2() {
        JPanel buttonPanel = new JPanel(new GridLayout(1, 0, 8, 8));
        String[] buttonNames = { "Click", "Hello", "Like" };
        for (String buttonName : buttonNames) {
            JButton button = new JButton(buttonName);
            int mnemonic = (int) buttonName.charAt(0);
            button.setMnemonic(mnemonic);
            button.setFont(button.getFont().deriveFont(Font.BOLD, 24f));
            buttonPanel.add(button);
        }

        setLayout(new GridBagLayout());
        add(buttonPanel);

        setPreferredSize(new Dimension(P_WIDTH, P_HEIGHT));
    }

    private static void createAndShowGui() {
        Rough2 mainPanel = new Rough2();

        JFrame frame = new JFrame("Rough2");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.getContentPane().add(mainPanel);
        frame.pack();
        frame.setLocationRelativeTo(null);
        frame.setVisible(true);
    }

    public static void main(String[] args) {
        SwingUtilities.invokeLater(() -> createAndShowGui());
    }
}