Java 无法调整JButton的大小

Java 无法调整JButton的大小,java,swing,intellij-idea,Java,Swing,Intellij Idea,我试图用swing编写一个程序,这样左边有一个JList,右边有五个jbutton。所以我为一个JButton编写了代码,但我无法调整或移动它。任何帮助都将不胜感激。非常感谢!!这是我的密码: import java.awt.*; import java.awt.event.*; import javax.swing.*; public class GenericFrame { private JFrame mainFrame; private JPanel controlPa

我试图用swing编写一个程序,这样左边有一个JList,右边有五个jbutton。所以我为一个JButton编写了代码,但我无法调整或移动它。任何帮助都将不胜感激。非常感谢!!这是我的密码:

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

public class GenericFrame {
    private JFrame mainFrame;
    private JPanel controlPanel;

    public GenericFrame(){
      prepareGUI();
    }

    private void prepareGUI(){
      mainFrame = new JFrame("Generic Frame");
      mainFrame.setSize(800,400);
      mainFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      mainFrame.setLayout(new FlowLayout());

      controlPanel = new JPanel();
      controlPanel.setLayout(new FlowLayout());
      controlPanel.setSize(800,400);

      mainFrame.add(controlPanel);
      mainFrame.setVisible(true);
    }

    public void showButtons(){
      JButton showButton = new JButton("Show");
      showButton.addActionListener(new ActionListener() {
                                 public void actionPerformed(ActionEvent e) {
                                    System.out.println("hello");
                                 }
                               });

      showButton.setLayout(new BorderLayout());
      showButton.setLocation(0, 200);


      JButton viewButton = new JButton("view");
      viewButton.setLocation(showButton.getX(), showButton.getY() + 100);


      controlPanel.add(showButton);
      controlPanel.add(viewButton);
    }


    public static void main(String[] args){
      GenericFrame  swingControlDemo = new GenericFrame();
      swingControlDemo.showButtons();
    }

    }
记录在案,我用的是IntelliJ。我在具有不同操作系统的多台计算机上尝试了此操作,但此错误仍然存在。请帮帮我

我试图用swing编写一个程序,这样左边有一个JList,右边有五个jbutton

因此,在使用布局管理器时,通常需要使用嵌套面板。因此,在您的情况下,我建议您保留框架的默认边框布局,并将JList添加到框架中,并将包含5个按钮的面板添加到框架中。基本准则是:

JList list = new JList(...);
frame.add(new JScrollPane( list ), BorderLayout.CENTER);

JPanel buttonPanel = new JPanel(...);
buttonPanel.add( button1 );
frame.add(buttonPanel, BorderLayout, BorderLayout.LINE_END);
因此,要知道您的下一个选择是用于按钮面板的布局管理器。也许是垂直布局?有关每个布局管理器的详细信息和示例,请阅读上Swing教程的部分

不要试图在组件上使用setSize或setLocation。布局管理器的任务是设置这些属性