我有一个 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]);
}
}
主要目标是能够将 addUndoableEditListener() 添加到这些 JLabel 中的每一个。用户将选择一个数字(int)放置在 JLabel 中,我希望他们能够通过单击撤消/重做按钮来撤消/重做他们的选择。
我试过:
UndoManager manager = new UndoManager();
label1.addUndoableEditListener(manager);
但是我看到您显然不能将“UndoableEditListener”添加到 JLabels。(对?)
我看到了一些示例,您可以将“UndoableEditListener”添加到 JTextPane,所以我想也许我可以创建一个 JTextPane 窗格 [9][9],并向每个 JLabels(添加到 JPanel)添加一个文本窗格。所以这将解决 UndoableEditListener 的问题。
这看起来合乎逻辑吗?我真的很感激一个更简单的方法,欢迎所有建议:)
我只是在将 UndoableEditListener 添加到组件时遇到了一些问题。
(我宁愿保留 JLabel,因为我需要能够更改背景颜色功能,否则有更好的方法吗??)
谢谢。