Avatar billede macpain Nybegynder
29. april 2005 - 23:54 Der er 4 kommentarer og
1 løsning

Mouse over ved brug af jTable

Er der nogen der ved hvorledes jeg kan få farven i en række til at skifte farve når man holder musen henover denne.

Altså svarende til at man trykkede på rækken.
Avatar billede _carsten Nybegynder
30. april 2005 - 22:16 #1
Jeg ved ikke om du har fået løst problemet, men her er en mulig løsning
Tilføj en MouseMotionListener til tabellen, og tag den udfra musens position


import java.awt.Point;

public class Test extends javax.swing.JFrame {

    public Test() {
        initComponents();
    }

    private void initComponents() {
        scroll = new javax.swing.JScrollPane();
        table = new javax.swing.JTable();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
        table.setModel(new javax.swing.table.DefaultTableModel(
            new Object [][] {
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null}
            },
            new String [] {
                "Title 1", "Title 2", "Title 3", "Title 4"
            }
        ));
        table.addMouseMotionListener(new java.awt.event.MouseMotionAdapter() {
            public void mouseMoved(java.awt.event.MouseEvent evt) {
                Point p = evt.getPoint();
                int row = table.rowAtPoint(p);
                int col = table.columnAtPoint(p);

                table.setRowSelectionInterval(row, row);
                table.setColumnSelectionInterval(col,col);
            }
        });

        scroll.setViewportView(table);

        getContentPane().add(scroll, java.awt.BorderLayout.NORTH);

        pack();
    }

    public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new Test().setVisible(true);
            }
        });
    }
   
    private javax.swing.JScrollPane scroll;
    private javax.swing.JTable table; 
}
Avatar billede macpain Nybegynder
30. april 2005 - 22:20 #2
Det er bare fjong, pointene er dine.

Kan du så løse et andet problem jeg har?

En let måde at tilføje comboxe til en jTable!!
Avatar billede _carsten Nybegynder
30. april 2005 - 22:35 #3
Hvis den skal fungere som editor er det nemt

        scroll.setViewportView(table);

        TableColumn column = table.getColumnModel().getColumn(2);
        column.setCellEditor(new DefaultCellEditor(new JComboBox()));

Comboboxen vises først når du klikker i kolonne 3

Skal den være synlig altid, skal du lave din egen klasse som implementere TableCellRenderer og sætte den som renderer på cellen
Avatar billede _carsten Nybegynder
30. april 2005 - 22:53 #4
Er du med på den, eller er du på den ????
Avatar billede macpain Nybegynder
30. april 2005 - 23:23 #5
Jep jeg er med, har faktisk lige implementeret noget ligende.

Fandt en løsning lige efter jeg skrev beskeden, men du skal have mange tal alligevel.

Var lige opslugt så jeg så ikke beskeden""
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester