Java 如何设置流程布局?

Java 如何设置流程布局?,java,swing,Java,Swing,您好,我正在尝试制作java桌面应用程序,我正在尝试制作jbutton左下角我做了以下代码我不知道哪里错了我的代码正在运行 这是我的密码 import java.awt.*; import java.awt.event.*; import javax.imageio.ImageIO; import javax.swing.*; new complete code public class ApplicationCloseExample { privat

您好,我正在尝试制作java桌面应用程序,我正在尝试制作jbutton左下角我做了以下代码我不知道哪里错了我的代码正在运行

这是我的密码

import java.awt.*;
import java.awt.event.*;
import javax.imageio.ImageIO;
import javax.swing.*;

new complete code 

    public class ApplicationCloseExample
    {   
        private JButton[] buttons;
        private void displayGUI()
        {
            final JFrame frame = new JFrame("Application Close Example");





            JPanel bottomPanel = new JPanel();
            bottomPanel.setLayout(new FlowLayout(FlowLayout.LEFT, 5, 5));
              for (int i = 5; i < 8; i++) {
                 buttons[i] = new JButton(Integer.toString(i));
                    bottomPanel.add(buttons[i]);
              }

           // JButton button = new JButton("Comment");
           // bottomPanel.add(button);

        //    frame.getContentPane().add(contentPane, BorderLayout.CENTER);
            frame.getContentPane().add(bottomPanel, BorderLayout.SOUTH);

            frame.pack();
            frame.setVisible(true);
        }

        public static void main(String... args)
        {
            SwingUtilities.invokeLater(new Runnable()
            {
                public void run()
                {
                    new ApplicationCloseExample().displayGUI();
                }
            });
        }
    }
import java.awt.*;
导入java.awt.event.*;
导入javax.imageio.imageio;
导入javax.swing.*;
新完整代码
公共类应用程序关闭示例
{   
私有JButton[]按钮;
私有void displayGUI()
{
最终JFrame=新JFrame(“应用程序关闭示例”);
JPanel bottomPanel=新的JPanel();
底部面板.setLayout(新的FlowLayout(FlowLayout.LEFT,5,5));
对于(int i=5;i<8;i++){
按钮[i]=新的JButton(Integer.toString(i));
底部面板。添加(按钮[i]);
}
//JButton按钮=新JButton(“注释”);
//底部面板。添加(按钮);
//frame.getContentPane().add(contentPane,BorderLayout.CENTER);
frame.getContentPane().add(底部面板,BorderLayout.SOUTH);
frame.pack();
frame.setVisible(true);
}
公共静态void main(字符串…参数)
{
SwingUtilities.invokeLater(新的Runnable()
{
公开募捐
{
新的ApplicationCloseExample().displayGUI();
}
});
}
}

我怎样才能做到这一点呢?

我会给你一个优雅的解决方案,但也许它有用。使用WindowsBuilder并添加几个按钮,看起来就像是在放置代码。因此,请您自己了解遵循带有流的setLayout的模式。

我将假设空指针异常与按钮数组有关。检查您是否已正确初始化它

private JButton[] buttons = new JButton[8];
我将您的代码复制到一个测试项目中,并在做了一些修改后运行它:

public static void main(String[] args) {

    final JFrame frame = new JFrame("Application Close Example");

    JPanel bottomPanel = new JPanel();
    bottomPanel.setLayout(new FlowLayout(FlowLayout.LEFT, 5, 5));
      for (int i = 5; i < 8; i++) {
         buttons[i] = new JButton(Integer.toString(i));
            bottomPanel.add(buttons[i]);
      }

    frame.getContentPane().add(bottomPanel, BorderLayout.SOUTH);

    frame.pack();
    frame.setVisible(true);
}
publicstaticvoidmain(字符串[]args){
最终JFrame=新JFrame(“应用程序关闭示例”);
JPanel bottomPanel=新的JPanel();
底部面板.setLayout(新的FlowLayout(FlowLayout.LEFT,5,5));
对于(int i=5;i<8;i++){
按钮[i]=新的JButton(Integer.toString(i));
底部面板。添加(按钮[i]);
}
frame.getContentPane().add(底部面板,BorderLayout.SOUTH);
frame.pack();
frame.setVisible(true);
}

这将生成一个框架,其中三个按钮与窗口左下角对齐。

您的代码中到底有什么不起作用?我唯一能猜到的是buttons数组没有正确初始化;更新了我的答案。我相信这是你的JButton阵列。