Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Hi, ich hab mal ne Frage:
Kann man eine JTable so einrichten, dass wenn der User Doppelt auf eine Zeile klickt eine Aktion ausgeführt wird und nicht der Editiermodus der Zeile?
Die Tabelle ist für einen MP3-Player, sie soll die Playlist darstellen. Also soll sie nicht vom User editiert werden, nur vom Programm selbst. Ich würde die Aktion (den doppelgeklickten Titel spielen) gerne erst nach einem Doppelklick ausführen, damit man die Titel erst selektieren kann und so (stell ich mir vom Feeling her besser vor).
jt.addMouseListener( new MouseAdapter() { // jt ist eine JTable
public void mouseClicked( MouseEvent e ) {
if( e.getClickCount() == 2 ) {
System.out.println( "Doppel-Click in Zeile " + jt.rowAtPoint(e.getPoint()) );
}
}
} );
Es besteht nur noch das Problem, dass der Editiermodus der Doppelgeklickten Zelle anspringt und dadurch nicht das Event an mein Programm geleitet wird (nehme ich an, mit einem Klick klappt's super). Wie kann ich diesen Editiermodus ausstellen?
Es besteht nur noch das Problem, dass der Editiermodus der Doppelgeklickten Zelle anspringt und dadurch nicht das Event an mein Programm geleitet wird (nehme ich an, mit einem Klick klappt's super). Wie kann ich diesen Editiermodus ausstellen?
hab per suche den Code hier gefunden, er funktioniert auch, aber mein contentPane repaintet sich plötzlich nicht mehr. Das neue JPanel wird erst angezeigt wenn ich z.B. die Fenstergröße ändere. komischerweise reicht bei allen meinen anderen Fenstern der Aufruf von validate() aus um den Inhalt neu zu zeichnen.
Liegt es daran, dass ich validate() innerhalb des MouseEvent aufrufe?
Warum krieg ich ne NullpointerException wenn ich getRootPane().validate() oder getRootPane().getContentPane.validate() aufrufe? Was spricht dagegen?
Hier der Code:
Code:
resultTablejTable = new JTable();
TableModelSearchCustomer model = new TableModelSearchCustomer(rowData);
resultTablejTable.setModel(model);
resultTablejTable.addMouseListener( new MouseAdapter()
{
public void mouseClicked( MouseEvent doubleClick )
{
if( doubleClick.getClickCount() == 2 )
{
int rowClicked = resultTablejTable.rowAtPoint(doubleClick.getPoint());
int customerID = (Integer)resultTablejTable.getValueAt(rowClicked, 0);
JPanel changeCustomerGUI = new ChangeCustomerGUI(_server, customerID);
getRootPane().setContentPane(changeCustomerGUI);
validate();
}
}
});
}
Danke schon mal;
Werd echt oft fündig hier, wenn ich auf Probleme stoß *thumbs up*