gpt4 book ai didi

java - 如何在 java 中隐藏 JButton 上的文本?

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

我有一些带有数字的按钮以区分按钮,但我不希望这些数字可见。有没有什么方法可以在按钮上显示文本并将其隐藏或隐藏?

这是我的代码:

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.GridLayout;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;

public class Start {
public static int a;
public static JButton[][] gumbi = new JButton[15][15];

public static void main(String[] args) {
JFrame okno = new JFrame("Nonogram");
okno.setVisible(true);
okno.setSize(800, 800);
okno.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel panel = new JPanel(new BorderLayout());
okno.add(panel);

JPanel polje = new JPanel(new GridLayout(15, 15));
panel.add(polje, BorderLayout.CENTER);
a = 0;
int b = 1;

for (int i = 0; i < 15; i++) {
for (int j = 0; j < 15; j++) {
if (i < 5 && j < 5) {
gumbi[i][j] = new JButton();
gumbi[i][j].setBackground(Color.GREEN);
// gumbi[i][j].addActionListener(new Listener(gumbi));
polje.add(gumbi[i][j]);
} else if (i < 5 || j < 5) {
gumbi[i][j] = new JButton();
gumbi[i][j].setBackground(Color.YELLOW);

// gumbi[i][j].addActionListener(new Listener(gumbi));
polje.add(gumbi[i][j]);
gumbi[i][j].setEnabled(false);

} else {
if (Math.random() <= 0.6) {
a += 1;
gumbi[i][j] = new JButton();
gumbi[i][j].setBackground(Color.WHITE);
// gumbi[i][j].addActionListener(new Listener(gumbi));
gumbi[i][j].setText("3");
polje.add(gumbi[i][j]);

} else {
gumbi[i][j] = new JButton();
gumbi[i][j].setBackground(Color.WHITE);
// gumbi[i][j].addActionListener(new Listener(gumbi));
gumbi[i][j].setText("4");
polje.add(gumbi[i][j]);
}
}
}
}


for (int i = 0; i < 15; i++) {
for (int j = 0; j < 15; j++) {
gumbi[i][j].addActionListener(new Listener(gumbi));
}
}

int [] array = new int[105];
for (int i = 5; i < 15; i++) {
for (int j = 5; j < 15; j++) {
int num = Integer.parseInt(gumbi[i][j].getText());
array [j + ((i-5)*10) - 5] = num;
}
}

int [] array2 = new int[105];
for(int i = 0; i < 100; i++){
array2[i] = -2;
}
array2[0] = -8;

for(int i = 0; i < 100; i++){
if(array[i] == array[i + 1] && array[i] == 3 && (i + 1) % 10 != 0){
b += 1;
} else if((array[i] == 3 && array[i] != array[i+1] && i < 99) || ((i + 1) % 10 == 0 && array[i] == 3)){
array2[i] = b;
b = 1;
}
if((i + 1) % 10 == 0){
b = 1;
}
}
int x = 0;
int y = 0;
for(int i = 1 ;i <= 100; i++){
//if(array2[(i-4) + (10*(j - 5))] != -2){
if (array2[i] != -2 && array[i] != 0){
gumbi[x + 5][y].setText("" + array2[i]);
y++;
}
if((i + 1) % 10 == 0){
x++;
y = 0;
}

}

for(int i = 0; i < 101; i++){
//System.out.println(array[i]);
if(array2[i] != -2)
System.out.print(array2[i] + " ");
}
for (int i = 5; i < 15; i++) {
for (int j = 5; j < 15; j++) {
int num = Integer.parseInt(gumbi[j][i].getText());
array [j + ((i-5)*10) - 5] = num;
}
}
for(int i = 0; i < 100; i++){
array2[i] = -2;
}
array2[0] = -8;
b = 1;
for(int i = 0; i < 100; i++){
if(array[i] == array[i + 1] && array[i] == 3 && (i + 1) % 10 != 0){
b += 1;
} else if((array[i] == 3 && array[i] != array[i+1] && i < 99) || ((i + 1) % 10 == 0 && array[i] == 3)){
array2[i] = b;
b = 1;
}
if((i + 1) % 10 == 0){
b = 1;
}

}
x = 0;
y = 0;
for(int i = 1 ;i <= 100; i++){
//if(array2[(i-4) + (10*(j - 5))] != -2){
if (array2[i] != -2 && array[i] != 0){
gumbi[y][x + 5].setText("" + array2[i]);
y++;
}
if((i + 1) % 10 == 0){
x++;
y = 0;
}

}
System.out.println();
for(int i = 0; i < 105; i++){
//System.out.println(array[i]);
if(array2[i] != -2)
System.out.print(array2[i] + " ");
}
}
}

和 Action 监听器:

import java.awt.Color;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;

public class Listener implements ActionListener {
JButton[][] gumbi = Start.gumbi;

public Listener(JButton[][] gumbi) {
this.gumbi = gumbi;

}

public void actionPerformed(ActionEvent e) {

JButton gumb = (JButton) e.getSource();

if (gumb.getBackground() == Color.WHITE) {
gumb.setBackground(Color.BLACK);
} else if (gumb.getBackground() == Color.BLACK) {
gumb.setBackground(Color.WHITE);
}
if (gumb.getBackground() == Color.WHITE && gumb.getText() == "3") {
Start.a += 1;
gumbi[0][0].setText("" + Start.a);
} else if (gumb.getBackground() == Color.BLACK && gumb.getText() == "3") {
Start.a -= 1;
gumbi[0][0].setText("" + Start.a);
}
}
}

感谢您的宝贵时间。

最佳答案

我的理解是,您需要在按钮中存储一些数据,以便在您的 ActionListener 中区分它们。为此有一个构造:操作命令。 Action 命令允许您在按钮上放置任何文本(想想 i18n、“Quit'-en、“Quitter”-fr)并将给定的语义关联到该按钮(应用程序中的“QuitCommand”)。

您可以随时使用 setActionCommand(String) 将 Action 命令关联到按钮,并在您的监听器中使用 String getActionCommand() 检索它。

关于java - 如何在 java 中隐藏 JButton 上的文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27689870/

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