Я пытаюсь иметь два jtables, где, если вы выберете ячейку в одном, она автоматически очищает выбор в другом. Я получил четкую часть выбора, проблема, с которой у меня есть, в том, что теперь требуется два щелчка, чтобы сделать выбор в каждой таблице (после самого первого выбора). Один щелчок только подчеркивает (я думаю, фокусируется?) Таблица и ячейка. Кто -нибудь знает, что делает это, и как это исправить? Спасибо !! < /p>
код: < /p>
import java.awt.*;
import javax.swing.*;
import javax.swing.table.*;
import javax.swing.event.*;
class JTableSelectionTest extends JFrame {
private JTable table1;
private JTable table2;
private JScrollPane scrollPane1;
private JScrollPane scrollPane2;
private String[] col1 = {"A", "B", "C"};
private String[] col2 = {"D", "E", "F"};
private String[] row1 = {"1", "1", "1"};
private String[] row2 = {"2", "2", "2"};
private String[] row3 = {"3", "3", "3"};
public JTableSelectionTest() {
setTitle("JTableSelectionTest");
setSize(700,250);
setLayout(new FlowLayout());
setDefaultCloseOperation(EXIT_ON_CLOSE);
table1 = new JTable(model(col1));
table1.setRowHeight(50);
table1.setCellSelectionEnabled(true);
table1.getTableHeader().setReorderingAllowed(false);
table1.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
table1.getSelectionModel().addListSelectionListener(table1Listener());
((DefaultTableModel)table1.getModel()).addRow(row1);
((DefaultTableModel)table1.getModel()).addRow(row2);
((DefaultTableModel)table1.getModel()).addRow(row3);
table2 = new JTable(model(col2));
table2.setRowHeight(50);
table2.setCellSelectionEnabled(true);
table2.getTableHeader().setReorderingAllowed(false);
table2.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
table2.getSelectionModel().addListSelectionListener(table2Listener());
((DefaultTableModel)table2.getModel()).addRow(row1);
((DefaultTableModel)table2.getModel()).addRow(row2);
((DefaultTableModel)table2.getModel()).addRow(row3);
scrollPane1 = new JScrollPane(table1);
scrollPane2 = new JScrollPane(table2);
scrollPane1.setPreferredSize(new Dimension(300, 170));
scrollPane2.setPreferredSize(new Dimension(300, 170));
add(scrollPane1);
add(scrollPane2);
}
public DefaultTableModel model(String[] columns) {
return
new DefaultTableModel(new Object[][]{}, columns) {
@Override
public boolean isCellEditable(int rowIndex, int columnIndex) {
return false;
}
@Override
public Class getColumnClass(int columnIndex) {
return String.class;
}
};
}
public ListSelectionListener table1Listener() {
ListSelectionListener listener =
new ListSelectionListener() {
@Override
public void valueChanged(ListSelectionEvent e) {
table2.clearSelection();
}
};
return listener;
}
public ListSelectionListener table2Listener() {
ListSelectionListener listener =
new ListSelectionListener() {
@Override
public void valueChanged(ListSelectionEvent e) {
table1.clearSelection();
}
};
return listener;
}
public static void main(String args[]) {
JTableSelectionTest test = new JTableSelectionTest();
test.setLocationRelativeTo(null);
test.setVisible(true);
}
}
Подробнее здесь: https://stackoverflow.com/questions/797 ... red-to-sel
Два jtables, которые каждый избирает выбор другого - для выбора в каждой таблице требуется 2 щелчка? ⇐ JAVA
Программисты JAVA общаются здесь
1757983271
Anonymous
Я пытаюсь иметь два jtables, где, если вы выберете ячейку в одном, она автоматически очищает выбор в другом. Я получил четкую часть выбора, проблема, с которой у меня есть, в том, что теперь требуется два щелчка, чтобы сделать выбор в каждой таблице (после самого первого выбора). Один щелчок только подчеркивает (я думаю, фокусируется?) Таблица и ячейка. Кто -нибудь знает, что делает это, и как это исправить? Спасибо !! < /p>
код: < /p>
import java.awt.*;
import javax.swing.*;
import javax.swing.table.*;
import javax.swing.event.*;
class JTableSelectionTest extends JFrame {
private JTable table1;
private JTable table2;
private JScrollPane scrollPane1;
private JScrollPane scrollPane2;
private String[] col1 = {"A", "B", "C"};
private String[] col2 = {"D", "E", "F"};
private String[] row1 = {"1", "1", "1"};
private String[] row2 = {"2", "2", "2"};
private String[] row3 = {"3", "3", "3"};
public JTableSelectionTest() {
setTitle("JTableSelectionTest");
setSize(700,250);
setLayout(new FlowLayout());
setDefaultCloseOperation(EXIT_ON_CLOSE);
table1 = new JTable(model(col1));
table1.setRowHeight(50);
table1.setCellSelectionEnabled(true);
table1.getTableHeader().setReorderingAllowed(false);
table1.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
table1.getSelectionModel().addListSelectionListener(table1Listener());
((DefaultTableModel)table1.getModel()).addRow(row1);
((DefaultTableModel)table1.getModel()).addRow(row2);
((DefaultTableModel)table1.getModel()).addRow(row3);
table2 = new JTable(model(col2));
table2.setRowHeight(50);
table2.setCellSelectionEnabled(true);
table2.getTableHeader().setReorderingAllowed(false);
table2.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
table2.getSelectionModel().addListSelectionListener(table2Listener());
((DefaultTableModel)table2.getModel()).addRow(row1);
((DefaultTableModel)table2.getModel()).addRow(row2);
((DefaultTableModel)table2.getModel()).addRow(row3);
scrollPane1 = new JScrollPane(table1);
scrollPane2 = new JScrollPane(table2);
scrollPane1.setPreferredSize(new Dimension(300, 170));
scrollPane2.setPreferredSize(new Dimension(300, 170));
add(scrollPane1);
add(scrollPane2);
}
public DefaultTableModel model(String[] columns) {
return
new DefaultTableModel(new Object[][]{}, columns) {
@Override
public boolean isCellEditable(int rowIndex, int columnIndex) {
return false;
}
@Override
public Class getColumnClass(int columnIndex) {
return String.class;
}
};
}
public ListSelectionListener table1Listener() {
ListSelectionListener listener =
new ListSelectionListener() {
@Override
public void valueChanged(ListSelectionEvent e) {
table2.clearSelection();
}
};
return listener;
}
public ListSelectionListener table2Listener() {
ListSelectionListener listener =
new ListSelectionListener() {
@Override
public void valueChanged(ListSelectionEvent e) {
table1.clearSelection();
}
};
return listener;
}
public static void main(String args[]) {
JTableSelectionTest test = new JTableSelectionTest();
test.setLocationRelativeTo(null);
test.setVisible(true);
}
}
Подробнее здесь: [url]https://stackoverflow.com/questions/79765698/two-jtables-that-each-clear-the-others-selection-2-clicks-are-required-to-sel[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия