Java UndoableEditListener-添加到JLabel和JTextPane

Java UndoableEditListener-添加到JLabel和JTextPane,java,swing,jpanel,jlabel,undo-redo,Java,Swing,Jpanel,Jlabel,Undo Redo,我有一个9x9面板,它是panel1[][] 每个面板都有一个JLabel,因此label1[][] 我将每个标签添加到for循环中的面板: for (int y = 0; y < 9; y++) { for (int x = 0; x < 9; x++) { label[y][x] = new Grid(x, y); panel1[y][x].add(label[y][x]);

我有一个9x9面板,它是
panel1[][]
每个面板都有一个JLabel,因此
label1[][]

我将每个标签添加到for循环中的面板:

for (int y = 0; y < 9; y++) {
        for (int x = 0; x < 9; x++) {
            label[y][x] = new Grid(x, y);
            panel1[y][x].add(label[y][x]);                
        }
    }
然而,我清楚地看到,您不能将“UndoableEditListener”添加到JLabels中。(对吗?)

我看到了一些示例,其中您可以将“UndoableEditListener”添加到JTextPane,因此我想也许我可以创建一个JTextPane窗格[9][9],并向每个JLabel(添加到JPanel)添加一个textpane。因此,这将解决UndoableEditListener的问题

这看起来合乎逻辑吗?我真的希望能有一个更简单的方法,欢迎所有建议:)

我只是在将UndoableEditListener添加到组件时遇到了一些问题

(我宁愿保留JLabel,因为我需要能够更改背景色功能,否则有更好的方法吗??)


谢谢。

看起来你不是真的想要一个JLabel。如果您希望它是可编辑的(并且是可撤消的),为什么不使用JTextField呢

JTextField可以更改其背景颜色,也可以更改JLabel:

JTextField tf = new JTextField();
tf.setColor(Color.RED);

将可撤消的侦听器添加到用户不可编辑的组件(对于
JLabel
)是没有意义的。如果你想改变背景颜色,你不需要坚持使用
JLabel
,我真的不知道为什么我以前没有想到这个…非常感谢!!
JTextField tf = new JTextField();
tf.setColor(Color.RED);