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

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

这是我的代码:

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] + " ");
        }
    }
}

和动作监听器:

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);
        }
    }
}

谢谢你的时间。

劳拉

设置按钮的文本以用于比较等不是很好的做法,您应该找到另一种方法来实现。也许将您的gumbi对象更改为地图。

如果您坚持使用setText,则可以为背景和文本设置相同的颜色。

gumbi[i][j].setBackground(Color.WHITE);
gumbi[i][j].setForeground(Color.WHITE);

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在链接按钮上的gridview中显示和隐藏文本框

来自分类Dev

如何在淘汰赛中禁用或隐藏文本

来自分类Dev

如何在Vanilla JS中显示和隐藏文本?

来自分类Dev

如何在Atom中隐藏文件

来自分类Dev

jQuery datepicker-如何在datepicker文本框中隐藏文本?

来自分类Dev

如何在按钮上显示/隐藏文本旁边显示图标?

来自分类Dev

如何在Linux上的Java应用程序的“打开文件”对话框中显示隐藏文件(。*)?

来自分类Dev

如何在工具栏按钮上隐藏文本(带有TBSTYLE_LIST的TBSTYLE_EX_MIXEDBUTTONS不会隐藏文本)

来自分类Dev

如何在pygame中渲染/隐藏文本以获得良好的性能

来自分类Dev

如何在swift中隐藏文本字段并自动布局约束

来自分类Dev

如何在双击中隐藏文本选择工具菜单?

来自分类Dev

CSS如何在跨度后隐藏文本

来自分类Dev

如何在视频以JavaScript结尾之前隐藏文本

来自分类Dev

如何在动画后隐藏文本视图

来自分类Dev

如何使用PDFBox Java识别和删除PDF中的隐藏文本

来自分类Dev

如何在 Ubuntu 上的文件管理器 (Nautilus) 中显示隐藏文件夹?

来自分类Dev

如何在QFileSystemModel上隐藏文件扩展名

来自分类Dev

如何使用硒读取python中的隐藏文本?

来自分类Dev

在jQuery中单击任何按钮后如何隐藏文本

来自分类Dev

高图:如何从图例中隐藏文本

来自分类Dev

如何在单个调用中同时获取隐藏文件和非隐藏文件

来自分类Dev

如何在终端中仅显示隐藏文件?

来自分类Dev

如何在Linux中创建隐藏文件?

来自分类Dev

如何在Linux中chmod和chown隐藏文件?

来自分类Dev

如何在ls模式匹配中包含隐藏文件?

来自分类Dev

如何在终端中仅显示隐藏文件?

来自分类Dev

如何在php中获取隐藏文件的大小

来自分类Dev

如何在Microsoft Word 2007中隐藏文本格式弹出窗口(迷你工具栏)

来自分类Dev

如何在android中隐藏文本文件?用户无法通过任何方式访问该文件吗?

Related 相关文章

  1. 1

    如何在链接按钮上的gridview中显示和隐藏文本框

  2. 2

    如何在淘汰赛中禁用或隐藏文本

  3. 3

    如何在Vanilla JS中显示和隐藏文本?

  4. 4

    如何在Atom中隐藏文件

  5. 5

    jQuery datepicker-如何在datepicker文本框中隐藏文本?

  6. 6

    如何在按钮上显示/隐藏文本旁边显示图标?

  7. 7

    如何在Linux上的Java应用程序的“打开文件”对话框中显示隐藏文件(。*)?

  8. 8

    如何在工具栏按钮上隐藏文本(带有TBSTYLE_LIST的TBSTYLE_EX_MIXEDBUTTONS不会隐藏文本)

  9. 9

    如何在pygame中渲染/隐藏文本以获得良好的性能

  10. 10

    如何在swift中隐藏文本字段并自动布局约束

  11. 11

    如何在双击中隐藏文本选择工具菜单?

  12. 12

    CSS如何在跨度后隐藏文本

  13. 13

    如何在视频以JavaScript结尾之前隐藏文本

  14. 14

    如何在动画后隐藏文本视图

  15. 15

    如何使用PDFBox Java识别和删除PDF中的隐藏文本

  16. 16

    如何在 Ubuntu 上的文件管理器 (Nautilus) 中显示隐藏文件夹?

  17. 17

    如何在QFileSystemModel上隐藏文件扩展名

  18. 18

    如何使用硒读取python中的隐藏文本?

  19. 19

    在jQuery中单击任何按钮后如何隐藏文本

  20. 20

    高图:如何从图例中隐藏文本

  21. 21

    如何在单个调用中同时获取隐藏文件和非隐藏文件

  22. 22

    如何在终端中仅显示隐藏文件?

  23. 23

    如何在Linux中创建隐藏文件?

  24. 24

    如何在Linux中chmod和chown隐藏文件?

  25. 25

    如何在ls模式匹配中包含隐藏文件?

  26. 26

    如何在终端中仅显示隐藏文件?

  27. 27

    如何在php中获取隐藏文件的大小

  28. 28

    如何在Microsoft Word 2007中隐藏文本格式弹出窗口(迷你工具栏)

  29. 29

    如何在android中隐藏文本文件?用户无法通过任何方式访问该文件吗?

热门标签

归档