Dobrého večera všem.
Nedaří se mně zrušit výběr pomocí .clearSelection();
Tedy normálně se mně to daří, ale jak do toho začnu montovat sql dotaz (teda myslím že je to tím), tak se mně to zasekne a "neodznačí".
Vytvořil jsem proto krátký příklad, na kterým bych to rád ilustroval.
Po kliknutí na tlačítko button1 (8 řádků od konce) bych chtěl zrušit výběr v list1, ale to se neprovede.
Poraďte, pěkně prosím.
Díky, N.
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import java.sql.*;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;
public class MainClass {
public static void main(String[] args) {
nazev apl = new nazev();
}
}
class nazev extends JFrame {
int IvarA;
JTabbedPane tabbedPane = new JTabbedPane();
JPanel panel1 = new JPanel();
JButton button1 = new JButton("Clear");
String[] data1 = {"DTW", "NTB", "RNBA", "CK", "PDR"};
JList list1 = new JList(data1);
DefaultListModel data2 = new DefaultListModel();
JList list2 = new JList(data2);
public nazev () {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible (true);
getContentPane().setLayout (new BorderLayout());
getContentPane().add(panel1,BorderLayout.CENTER);
panel1.add(button1);
panel1.add(list2);
list2.setPreferredSize(new Dimension (100,100));
panel1.add(list1);
list1.setPreferredSize(new Dimension (100,100));
button1.addActionListener (new ActionButton1());
list1.addListSelectionListener( new ListSelectionListener1());
setSize (300,140);
}
class ListSelectionListener1 implements ListSelectionListener {
public void valueChanged(ListSelectionEvent e) {
if (e.getValueIsAdjusting())
return;
Object[] selected1 = list1.getSelectedValues();
try {
String url = "jdbc:odbc:databaze1";
String jmeno1;
Statement pozadavek = null;
ResultSet vysledek1 = null;
Connection dB = null;
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
dB = DriverManager.getConnection(url);
} catch (ClassNotFoundException v) {
System.err.println("Nepodařilo se zavést most JDBC/ODBC." + v.getMessage());
System.exit(1);
} catch (SQLException v) {
System.err.println("Nepodařilo se připojit k databázi." + v.getMessage());
System.exit(2);
}
try {
String query1 = "Select TaskName FROM Tracker WHERE Code IN(";
for (int i = 0, n = selected1.length; i < n; i++) {
if (i > 0) query1 += " ,";
query1 += "'" + selected1[i] + "'";
}
query1 += ");";
pozadavek = dB.createStatement();
vysledek1 = pozadavek.executeQuery(query1);
} catch (SQLException v) {
System.err.println("Chyba SQL." + v.getMessage());
//System.exit(3);
}
boolean zaznamy1 = vysledek1.next();
if (!zaznamy1) {
//System.out.println("Nebyla vrácena žádná data");
//System.exit(4);
}
try {
do {
jmeno1 = vysledek1.getString(1);
String[] items1 = {jmeno1};
data2.add(IvarA, items1[IvarA]);
} while (vysledek1.next());
} catch (SQLException v) {
System.err.println("Chyba při zobrazaní dat." + v.getMessage());
//System.exit(5);
} finally {
dB.close();
}
}
catch (SQLException v) {
System.err.println("Chyba Exit 6." + v.getMessage());
//System.exit(6);
}
}
}
class ActionButton1 implements ActionListener {
public void actionPerformed(ActionEvent e) {
list1.clearSelection();
}
}
}