gpt4 book ai didi

java - jPanel 和 jButton 自定义

转载 作者:行者123 更新时间:2023-12-01 11:03:29 25 4
gpt4 key购买 nike

我正在尝试学习如何用 Java 编写 Conway 的生命游戏,但我在创建 GUI 时遇到了困难。我想在 JFrame 中制作一个 JPanel,在南边有一个较大的边框,然后在南边有两个按钮,一个用于“播放”,一个用于“重新启动”。但设计元素不允许我调整大小或移动任何东西。我能够通过进入代码并在南部创建更大的边框来调整 JPanel 的大小,但我不知道如何调整 JButton 的大小。有什么想法吗?

(我正在使用 Eclipse Kepler...我听说 NetBeans 在此类方面更出色,我应该放弃 Eclipse 并尝试使用 NetBeans 吗?)

这是我到目前为止的代码:

import java.awt.BorderLayout;
import java.awt.EventQueue;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import java.awt.Color;
import java.awt.FlowLayout;
import javax.swing.JButton;


public class GameOfLife extends JFrame {

private JPanel contentPane;

/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
GameOfLife frame = new GameOfLife();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}

/**
* Create the frame.
*/
public GameOfLife() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 518, 508);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(10, 10, 50, 10));
contentPane.setLayout(new BorderLayout(0, 0));
setContentPane(contentPane);

JPanel panel = new JPanel();
panel.setBackground(Color.GRAY);
contentPane.add(panel, BorderLayout.CENTER);

JButton btnNewButton = new JButton("New button");
contentPane.add(btnNewButton, BorderLayout.SOUTH);
}

}

基本上,我想手动将其放置在框架内我想要的位置,而不是执行 BorderLayout.SOUTH。我也希望能够使用 JPanel 来做到这一点——整个北/西/南/东/中心的事情总体上看起来非常狭窄。有什么办法吗?

最佳答案

也许您应该查看 Java 文档中的 Swing 布局:

A Visual Guide to Layout Managers

能够为您提供最大灵 active 的布局是GridBagLayout,但您将编写大量代码来根据需要显示用户界面。

以下官方教程将为您提供详细的操作方法: How to Use GridBagLayout

在您的代码中,您使用的是简单的 BorderLayout,它非常简单,但可配置性不高。

关于java - jPanel 和 jButton 自定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33156610/

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