我有一个使用自定义DefaultTableModel的JTable,它在最后一列中有一些布尔值(显示为勾选框).
当我添加一个MouseListener来检索被点击的值时,似乎不再发生勾选框的切换.
// As soon as this is used in the component
// that is using the JTable, the toggling stops
table.addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent evt) {
int col = table.getSelectedColumn();
int row = table.getSelectedRow();
Object o = table.getModel().getValueAt(row, col);
Run Code Online (Sandbox Code Playgroud)
我假设侦听器正在使用该事件.我可以将哪些内容添加到MouseListener代码以恢复切换行为?
编辑:
哎呀,问题似乎在于我的覆盖:
@Override
public void setValueAt(Object aValue, int row, int column) {
// Attempt at mutually exclusive checkboxes
if( column == 2 ){ // Starts at 0. Seek an alternative solution to avoid hardcoding?
// Algorithm: cycle …Run Code Online (Sandbox Code Playgroud) 我的代码遇到了一个特定的问题.
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.io.*;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.*;
import java.awt.Color;
class ver_his_sign extends JFrame {
ver_his_sign() {
JTable table = new JTable();
JScrollPane scroll = new JScrollPane();
DefaultTableModel model = new DefaultTableModel(get_data(), get_header());
JFrame hk = new JFrame("Historial de Significados");
Image icon = Toolkit.getDefaultToolkit().getImage("JLPT.jpg");
ImageIcon ima = new ImageIcon("JLPT.jpg");
table = new JTable(model) {
public boolean isCellEditable(int row, int col) {
switch (col) {
case 0:
return false;
case …Run Code Online (Sandbox Code Playgroud)