gpt4 book ai didi

java - 无法调整 JButton 的大小

转载 作者:行者123 更新时间:2023-12-02 12:25:34 26 4
gpt4 key购买 nike

我正在尝试编写一个带有 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。我在具有不同操作系统的多台计算机上尝试了此操作,但此错误仍然存​​在。请帮助我。

最佳答案

I am trying to write a program with swing such that there is a JList on the left and five JButtons on the right.

因此,在使用布局管理器时,您经常需要使用嵌套面板。因此,在您的情况下,我建议您保留框架的默认 BorderLayout 并将 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);

所以知道您的下一个选择是用于“按钮面板”的布局管理器。也许是垂直的 BoxLayout?阅读 Swing 教程中关于 Layout Manager 的部分有关每个布局管理器的更多信息和示例。

不要尝试在组件上使用 setSize() 或 setLocation()。设置这些属性是布局管理器的工作。

关于java - 无法调整 JButton 的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45497398/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com