gpt4 book ai didi

java - 如何用数字绘制 JButton 的角?

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

我正在用 Java Swing 制作一个简单的 Kakuro 应用程序,我使用了 JButton 作为单元格。我已经完成了从生成网格(setBackground(Color.BLACK)setBackground(Color.WHITE))到填充唯一数字的所有操作。

但问题是,我不知道如何在 JButton 的末尾绘制“线索”。我想要的类似于:

enter image description here

有时数字可能只出现在3面、2面甚至1面。

我想设置背景图片,但这是不可能的,因为数字是动态生成的数字的总和(网格是动态的)。

那么知道如何获得这种 JButton 吗?或者,如果不可能,我还有哪些其他选择?

非常感谢(我真的卡住了)。

最佳答案

非常简单和舒适的方法是使用 BorderLayoutJLabels 添加到 JButton

import java.awt.BorderLayout;
import java.awt.Color;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.SwingUtilities;

public class FourLabelsInButton {

private JFrame frame;
private JButton myButton1;
private JLabel myButton1_Label_N;
private JLabel myButton1_Label_E;
private JLabel myButton1_Label_W;
private JLabel myButton1_Label_S = new JLabel();

public FourLabelsInButton() {
myButton1_Label_N = new JLabel("45");
myButton1_Label_N.setHorizontalAlignment(JLabel.CENTER);
myButton1_Label_N.setForeground(Color.red);

myButton1_Label_E = new JLabel("1");
myButton1_Label_E.setHorizontalAlignment(JLabel.CENTER);
myButton1_Label_E.setForeground(Color.red);

myButton1_Label_W = new JLabel("9");
myButton1_Label_W.setHorizontalAlignment(JLabel.CENTER);
myButton1_Label_W.setForeground(Color.red);

myButton1_Label_S = new JLabel("21");
myButton1_Label_S.setHorizontalAlignment(JLabel.CENTER);
myButton1_Label_S.setForeground(Color.red);

myButton1 = new JButton();
myButton1.setBackground(Color.black);
myButton1.setLayout(new BorderLayout());
myButton1.add(myButton1_Label_N, BorderLayout.NORTH);
myButton1.add(myButton1_Label_E, BorderLayout.EAST);
myButton1.add(myButton1_Label_W, BorderLayout.WEST);
myButton1.add(myButton1_Label_S, BorderLayout.SOUTH);

frame = new JFrame();
frame.add(myButton1);
frame.pack();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}

public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {

@Override
public void run() {
FourLabelsInButton ggg = new FourLabelsInButton();
}
});
}
}

关于java - 如何用数字绘制 JButton 的角?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8777336/

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