Нужен код фильтра для JTable - Java
Формулировка задачи:
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package tablens;
import java.awt.BorderLayout;
import java.awt.Desktop.Action;
import java.awt.Dimension;
import java.awt.EventQueue;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import javax.swing.*;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.table.DefaultTableModel;
import javax.swing.JScrollPane;
import javax.swing.JButton;
import javax.swing.JTable;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
public class start extends JFrame implements ActionListener {
private JPanel contentPane;
private JTable table;
private DefaultTableModel model;
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
try {
start frame = new start();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
public start() {
JMenuBar menubar = new JMenuBar();
JMenu menu = new JMenu("Файл");
JMenuItem itm;
itm = new JMenuItem(new AbstractAction("Добавить строку") {
@Override
public void actionPerformed(ActionEvent a) {
String[] data= { null, null, null };
//Добавим строку data в таблицу
model.addRow(data);
}
});
menu.add(itm);
itm.addActionListener(this);
itm.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_E,
ActionEvent.ALT_MASK));;
JMenu dev = new JMenu("Разработчик");
menu.add(new JSeparator());
JMenu submenu = new JMenu("Sub");
itm = new JMenuItem("Print");
itm.addActionListener(this);
submenu.add(itm);
itm = new JMenuItem("Export");
itm.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_E,
ActionEvent.ALT_MASK));
itm.addActionListener(this);
submenu.add(itm);
menu.add(submenu);
menubar.add(menu);
menubar.add(dev);
setJMenuBar(menubar);
setTitle("Таблица");
setPreferredSize(new Dimension(640, 480));
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 450, 300);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
contentPane.setLayout(new BorderLayout(0, 0));
setContentPane(contentPane);
model = new DefaultTableModel(){
@Override
public boolean isCellEditable(int row, int column){
return true;
};
};
model.addColumn("Адрес");
model.addColumn("Право cобсветнности");
model.addColumn("Ф.И.О");
model.addColumn("Текущие начисления");
model.addColumn("Задолжность");
model.addColumn("ПЕНЯ");
model.addColumn("Период задолжности");
model.addColumn("Судебный приказ");
model.addColumn("Заявление ССП");
model.addColumn("");
model.addColumn("");
model.addColumn("");
model.addColumn("");
/*
Если не использовать JScrollPane тогда не будут видны
заголовки столбцов нашей таблицы
*/
JScrollPane scrollPane = new JScrollPane();
contentPane.add(scrollPane, BorderLayout.CENTER);
/*
Создадим таблицу и передадим в качесве параметра,
передадим нашу модель
*/
table = new JTable(model);
scrollPane.setViewportView(table);
JPanel panel = new JPanel();
contentPane.add(panel, BorderLayout.SOUTH);
JButton btnNewButton = new JButton("Добавить строку");
btnNewButton.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent arg0) {
String[] data= { null, null, null };
//Добавим строку data в таблицу
model.addRow(data);
}
});
JButton btnNewButton1 = new JButton("Удалить строку");
btnNewButton1.addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent event) {
model.removeRow(table.getSelectedRow());
}
});
panel.add(btnNewButton);
panel.add(btnNewButton1);
}
private void setOpaque(boolean b) {
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
}
@Override
public void actionPerformed(ActionEvent arg0) {
System.out.println(arg0.getActionCommand());
}
}Решение задачи: «Нужен код фильтра для JTable»
textual
Листинг программы
SELECT * FROM <TABLE Name> WHERE <Condition1> AND ... AND <ConditionN>