gpt4 book ai didi

java - 在我创建 JPanel 的同一部分绘制网格线?

转载 作者:行者123 更新时间:2023-12-02 07:53:39 24 4
gpt4 key购买 nike

我需要为填字游戏构建网格线。我想知道是否可以在创建 JPanel 及其属性的同一部分中执行此操作,而不是在方法中执行此操作?

class CrosswordWindow extends JFrame {


public JPanel crossPanel;

public CrosswordWindow() {
super("Crossword");

setLayout(null);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setResizable(false);

/*
bunch of buttons, labels, JLists etc.
*/

int size;
crossPanel = new JPanel();
crossPanel.setBounds(240, 40, 680, 360);
crossPanel.setBackground(Color.white);
crossPanel.setBorder(BorderFactory.createEtchedBorder(1, Color.lightGray, Color.lightGray));
add(crossPanel);

我在尝试绘制填字游戏的网格线时遇到了困难。

最佳答案

首先,永远不要这样做:setLayout(null);。虽然 null 布局和 setBounds() 对于 Swing 新手来说似乎是创建复杂 GUI 的最简单、最好的方法,但创建的 Swing GUI 越多,使用它们时遇到的困难就越严重。当 GUI 调整大小时,它们不会调整组件的大小,它们是增强或维护的皇家女巫,放置在滚动 Pane 中时它们完全失败,在所有平台或与原始分辨率不同的屏幕分辨率上查看时,它们看起来非常糟糕.

但更重要的是,我的建议是不要绘制网格线。相反,请考虑使用包含 GridLayout 的 JPanel,您可以将其水平和垂直间隙设置为 1,如果要显示网格线,则将背景设置为黑色,然后使用接受单个字符的 JLabels 或 JTextFields 填充它。

关于java - 在我创建 JPanel 的同一部分绘制网格线?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29292400/

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