DefaultListModel als Spalte in JTable anzeigen lassen

Status
Nicht offen für weitere Antworten.

Garret

Mitglied
Hallo ich bin ganz neu bei Java, und habe eine meiner Ansicht mach recht einfach frage, weiß aber nicht wie ich das mit möglichst simplen Code lösen kann.

Und zwar möchte ich eine liste (DefaultListModel) in einer Spalte einer JTable anzeigen lassen.
Hört sich nicht schwer an, aber bis jetzt hab Ichs nicht hinbekommen :-/

Vielleicht weiß ja hier jemand mehr?
 

Ebenius

Top Contributor
Damit ich Dich richtig verstehe: Du willst eine einspaltige Tabelle, die Ihre Daten aus einem ListModel bekommt?
 

L-ectron-X

Gesperrter Benutzer
Hmm, das ist mir noch zu inkonkret...

Soll die Liste innerhalb einer Zelle angezeigt werden, oder sich über mehrere Zeilen einer Spalte erstrecken?
 

Ebenius

Top Contributor
L-ectron-X, danke. Auf die Idee bin ich nicht gekommen. Hab nicht genau genug gelesen. Jetzt wenn ich den Eingangs-Post neu lese: Bestimmt in einer Zelle. :)
 

Garret

Mitglied
ok, ich sag mal konkret wie es werden soll.
Im moment habe ich eine JList und möchte jetzt aber zu jedem eintrag eine checkbox haben.
und am einfachsten, dachte ich, wäre es die liste in eine tabelle zu packen (bool,object)
 

Ebenius

Top Contributor
Okay. Du brauchst also ein TableModel, das Dir zu einem ListModel eine erste Spalte hinzufügt und diese mit Boolen-Werten ausstattet? Default ist false?
 

Garret

Mitglied
ja, so würde mir die sache gefallen, nur bin ich bis jetzt einfach nicht bei den TableModels durchgestiegen
 

André Uhres

Top Contributor
Warum lässt du die JList nicht fallen und machst gleich eine JTable? Dann kann du
z.B. mit DefaultTableModel#addRow den Boolean mit dem dazugehörigen Wert einfügen.
Beispiel:
Code:
/*
 * NewJFrame8.java
 */
import java.awt.*;
import javax.swing.*;
import javax.swing.table.*;
public class NewJFrame8 extends JFrame {
    private JTable jTable1;
    private DefaultTableModel model;
    public NewJFrame8() {
        initComponents();
        for (int i = 0; i < 50; i++) {
            Object[] rowData = {Boolean.FALSE, "Test" + i};
            model.addRow(rowData);
        }
    }
    private void initComponents() {
        setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
        setSize(400, 300);
        setLocationRelativeTo(null);
        jTable1 = new JTable();
        model = new MyTableModel(
                new Object[][]{},
                new String[]{
                    "Aktiv", "Wert"
                });
        jTable1.setModel(model);
        getContentPane().add(new JScrollPane(jTable1), BorderLayout.CENTER);
    }
    public static void main(final String args[]) {
        EventQueue.invokeLater(new Runnable() {
            @Override
            public void run() {
                new NewJFrame8().setVisible(true);
            }
        });
    }
    private class MyTableModel extends DefaultTableModel {
        public MyTableModel(Object[][] data, Object[] columnNames) {
            super(data, columnNames);
        }
        Class[] types = new Class[]{Boolean.class, String.class};
        boolean[] canEdit = new boolean[]{true, false};
        @Override
        public Class getColumnClass(final int columnIndex) {
            return types[columnIndex];
        }
        @Override
        public boolean isCellEditable(final int rowIndex, final int columnIndex) {
            return canEdit[columnIndex];
        }
    }
}
 

Garret

Mitglied
ahh, vielen dank, jetzt geht auf jedenfall schonmal die tabelle!
kann ich noch irgendwie einrichten das die Tabelle nach den Bool werten sortiert wird?


EDIT: hm, da ist doch noch ein Problem

Hier ist eine schleife in der ich uhrsprünglich die liste mit Strings gefüllt habe.
Ich habe in die Schleife jetzt noch die Tabelle eingefügt, allerdings bleibt diese leer? warum?

Code:
for(int i = 0; i < channels.size(  ); i++)
{
            usedChannels.addElement( channels.elementAt( i ).Programm );

            Object[] rowData = {Boolean.FALSE, channels.elementAt( i ).Programm};
            channelTable.addRow(rowData);
}

PS: Die for-schleife von dir, die Testeinträge erstellt hat, hat funktioniert!
 

André Uhres

Top Contributor
Mit jTable1.setAutoCreateRowSorter(true); können wir die JTable durch Klick auf die Spaltenüberschrift sortieren.
Bist du sicher, daß das TableModel an die JTable gebunden ist:
jTable1.setModel(channelTable);
?
 

Garret

Mitglied
Mir würde es allerdings besser gefallen wenn die Tabelle schonmal standardmäßig ohne klick danach sortiert, ist das möglich?

hab das Problem lösen können, ich hab erst das Model gefüllt und danach neu erstellt, so gehts natürlich nicht
:roll:


Aber noch ein Problem, es werden nur 4 Einträge in die Tabelle gepackt? Danach erscheinen keine weitere! (platz ist natürlich Optisch da)

EDIT: Achja, es wird im Code auf jedenfall mehr als 4 mal .addRow(rowData) aufgerufen, hab mir extra einen Button gemacht der bei jedem druck ein testeintrag in die Tabelle schreibt: nach 4 mal drücken kommt nichts mehr in die Tabelle


Nochmal Edit:
Also ich habe jetzt wohl gefunden wie ich meine Tabelle sortieren, nähmlich mit dem TableRowSorter.
Dabei hab ich auch herrausgefunden das ich noch java 1.5 benutze und auf 1.6 updaten musste damit der TableRowSorter funktioniert.
Dummerweise kann ich mein Programm mit 1.6 nicht starten,

SCHWERWIEGEND: Application class Viewer.ViewerApp failed to launch
java.lang.IllegalArgumentException: defaultCloseOperation must be one of: DO_NOTHING_ON_CLOSE, HIDE_ON_CLOSE, or DISPOSE_ON_CLOSE
 

André Uhres

Top Contributor
Code:
table.setAutoCreateRowSorter(true); 
...
sortTable(table, SortOrder.ASCENDING);
...
//Methode zum Sortieren der ersten Spalte:
private void sortTable(final JTable table, final SortOrder order){
    ArrayList<RowSorter.SortKey> list = new ArrayList<RowSorter.SortKey>(1);
    list.add(new RowSorter.SortKey(0, order));
    TableRowSorter rowSorter = (TableRowSorter) table.getRowSorter();
    rowSorter.setSortKeys(list);
    rowSorter.sort();
}
Bist du sicher, daß Tabellengrösse/Containergrösse nicht einschränkend gesetzt wurden?
Mit setDefaultCloseOperation kannst du die defaultCloseOperation anpassen.
 
G

Guest

Gast
Danke erstmal, DefaultCloseOperation Problem verursacht wohl ein sehr simpler Dialog von mir der in 1.5 noch funktioniert hat.

da hat er wie folgt ausgesehen:
public class Dialog extends javax.swing.JDialog {
public Dialog( ) {
initComponents();
}

Jetzt habe ich mir mit 1.6 mal in Netbeans ein neuen Dialog generieren lassen um mal den Code zu vergleichen.

Dort sieht der Code so aus:
public class Dialog extends javax.swing.JDialog {
public Dialog( java.awt.Frame parent, boolean modal ) {
super(parent, modal);
initComponents();
}

Jetzt ist mein Problem das mein Aufruf
public Dialog meinDialog = new Dialog( );
Natürlich nicht mehr Funktioniert, ( this, false ) geht allerdings auch nicht, aber was soll man sonst als Parent angeben?
Lösche ich die parent und super() einträge raus bin ich wieder beim uhrsprünglichen fehler...
 
G

Guest

Gast
Danke, das Uhrsprünge Problem entstand wegen einer falschen DefaultCloseOperation im autogenerierten teil des alten Dialogs.

Sortieren geh auch, vielen Danke :)
Kleiner Schönheitsfehler ist noch das nicht automatisch neu Sortiert wird wenn sich Einträge ändern.

Zum 4 einträge problem:
Wo sehe ich denn ob die Größe eingegrenzt wurde? siehr für mich alles sehr dynamisch aus :-/
 

Garret

Mitglied
Mist warum war das ein gast eintrag?
Naja, jedenfalls hab ich jetzt rausbekommen das in der Tabelle mehr als nur 4 Werte sind! aber es werden nur 4 angezeigt! (unten drunter ist die fläche einfach weiß)
 

Garret

Mitglied
Das sind jetzt alle relevanten Methoden:


Code:
import java.util.ArrayList;
import javax.swing.JFrame;
import javax.swing.JTable;
import javax.swing.RowSorter;
import javax.swing.SortOrder;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableRowSorter;

public class Frame extends JFrame {
    public void Frame(  ) {
        JTable kanalliste = new JTable();
        add(kanalliste);

        channelTable = new MyTableModel(
                new Object[][]{},
                new String[]{ "♥", "Sender" }
                );

        this.kanalliste.setModel( channelTable );
        fillTable();
        this.kanalliste.setAutoCreateRowSorter(true);
        sortTable(this.kanalliste,SortOrder.DESCENDING);
        this.setSize(100,100);
        pack();
    }

    public void fillTable() throws Exception
    {
        for( int i = 0; i <= 10; i++ )
        {
               Object[] rowData = { Boolean.FALSE, "Hallo" };
               channelTable.addRow( rowData );
        }
    }

    public void removeChannels() throws Exception
    {
        this.channelTable.removeRow( this.kanalliste.getSelectedRow(  ) );
    }

    private class MyTableModel extends DefaultTableModel
    { 
        public MyTableModel(Object[][] data, Object[] columnNames)
        { 
            super(data, columnNames); 
        } 
        Class[] types = new Class[]{Boolean.class, String.class}; 
        boolean[] canEdit = new boolean[]{true, false}; 

        @Override 
        public Class getColumnClass(final int columnIndex)
        { 
            return types[columnIndex]; 
        } 

        @Override 
        public boolean isCellEditable(final int rowIndex, final int columnIndex)
        { 
            return canEdit[columnIndex]; 
        } 
    }

    private void sortTable( final JTable table, final SortOrder order )
    { 
        ArrayList< RowSorter.SortKey > list = new ArrayList< RowSorter.SortKey >( 1 ); 
        list.add( new RowSorter.SortKey( 0, order ) ); 
        TableRowSorter rowSorter = ( TableRowSorter ) table.getRowSorter(  ); 
        rowSorter.setSortKeys( list ); 
        rowSorter.sort(  ); 
    }

    public DefaultTableModel channelTable = new DefaultTableModel(  );
    private javax.swing.JTable kanalliste;
}
 

André Uhres

Top Contributor
Beim Konstruktor ist das void zuviel und bei
JTable kanalliste = new JTable();
ist das erste JTable zuviel.
Ansonsten ist es eigentlich gar kein Beispiel, denn es zeigt nicht das eigentliche Problem.

Code:
import java.util.ArrayList;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JFrame;
import javax.swing.JTable;
import javax.swing.RowSorter;
import javax.swing.SortOrder;
import javax.swing.SwingUtilities;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableRowSorter;

public class Frame extends JFrame {
    public  Frame(  ) {//<-----------------------------------------
        kanalliste = new JTable();//<----------------------------------
        add(kanalliste);

        channelTable = new MyTableModel(
                new Object[][]{},
                new String[]{ "♥", "Sender" }
                );

        this.kanalliste.setModel( channelTable );
        try {//<---------------------------------------------
            fillTable();
        } catch (Exception ex) {
            Logger.getLogger(Frame.class.getName()).log(Level.SEVERE, null, ex);
        }
        this.kanalliste.setAutoCreateRowSorter(true);
        sortTable(this.kanalliste,SortOrder.DESCENDING);
        this.setSize(100,100);
        pack();
    }
    public static void main(final String[] args) {//<-------------------------
        Runnable gui = new Runnable() {

            @Override
            public void run() {
                Frame f = new Frame();
                f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                f.setSize(400,300);
                f.setLocationRelativeTo(null);
                f.setVisible(true);
            }
        };
        SwingUtilities.invokeLater(gui);
    }
...
}
 

Garret

Mitglied
Ich hab doch auch nur die Tabelle im NetBeans designer erstellen lassen und dann nicht anders befüllt als in diesem Programm, ich weiß auch nicht warum nicht mehr als 4 einträge sichtbar sind :-(
 

Garret

Mitglied
Ich hab jetzt einige Klassen und Methoden entfernt die nichts mit der Tabelle oder dem Model anstellen, sonst wäre das ganze etwas zu groß geworden.
Den Autogenerierten Code teil habe ich jetzt mal nicht geändert (bevor ich etwas für die Problemfindung nützliches lösche), auch wenn dort einige bezüge auf die jetzt fehlenden Methoden stehen.

Code:
package dvbtviewer;

import org.jdesktop.application.Application;
import org.jdesktop.application.SingleFrameApplication;

public class DVBTViewerApp extends SingleFrameApplication {
    @Override protected void startup() {
        show(new DVBTViewerView(this));
    }

    @Override protected void configureWindow(java.awt.Window root) {
    }

    public static DVBTViewerApp getApplication() {
        return Application.getInstance(DVBTViewerApp.class);
    }

    public static void main(String[] args) {
        launch(DVBTViewerApp.class, args);
    }
}

und:

Code:
package dvbtviewer;

import org.jdesktop.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.*; 
import java.util.Random; 
import javax.swing.*;
import java.io.*;
import java.util.*;

public class DVBTViewerView extends FrameView {

    public DVBTViewerView(SingleFrameApplication app) {
        super(app);

        initComponents();

        ResourceMap resourceMap = getResourceMap();
        int messageTimeout = resourceMap.getInteger("StatusBar.messageTimeout");
        messageTimer = new Timer(messageTimeout, new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                statusMessageLabel.setText("");
            }
        });
        messageTimer.setRepeats(false);
        int busyAnimationRate = resourceMap.getInteger("StatusBar.busyAnimationRate");
        for (int i = 0; i < busyIcons.length; i++) {
            busyIcons[i] = resourceMap.getIcon("StatusBar.busyIcons[" + i + "]");
        }
        busyIconTimer = new Timer(busyAnimationRate, new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                busyIconIndex = (busyIconIndex + 1) % busyIcons.length;
                statusAnimationLabel.setIcon(busyIcons[busyIconIndex]);
            }
        });
        idleIcon = resourceMap.getIcon("StatusBar.idleIcon");
        statusAnimationLabel.setIcon(idleIcon);
        progressBar.setVisible(false);

        // connecting action tasks to status bar via TaskMonitor
        TaskMonitor taskMonitor = new TaskMonitor(getApplication().getContext());
        taskMonitor.addPropertyChangeListener(new java.beans.PropertyChangeListener() {
            public void propertyChange(java.beans.PropertyChangeEvent evt) {
                String propertyName = evt.getPropertyName();
                if ("started".equals(propertyName)) {
                    if (!busyIconTimer.isRunning()) {
                        statusAnimationLabel.setIcon(busyIcons[0]);
                        busyIconIndex = 0;
                        busyIconTimer.start();
                    }
                    progressBar.setVisible(true);
                    progressBar.setIndeterminate(true);
                } else if ("done".equals(propertyName)) {
                    busyIconTimer.stop();
                    statusAnimationLabel.setIcon(idleIcon);
                    progressBar.setVisible(false);
                    progressBar.setValue(0);
                } else if ("message".equals(propertyName)) {
                    String text = (String)(evt.getNewValue());
                    statusMessageLabel.setText((text == null) ? "" : text);
                    messageTimer.restart();
                } else if ("progress".equals(propertyName)) {
                    int value = (Integer)(evt.getNewValue());
                    progressBar.setVisible(true);
                    progressBar.setIndeterminate(false);
                    progressBar.setValue(value);
                }
            }
        });


        channelTable = new MyTableModel(
                new Object[][]{},
                new String[]{ "♥", "Sender" }
                );

        this.kanalliste.setModel( channelTable );

        this.kanalliste.setAutoCreateRowSorter(true);
        sortTable(this.kanalliste,SortOrder.DESCENDING);
    }

    @Action
    public void kanalsuche() throws Exception
    {
            //Befüllt das TableModel mit vielen einträgen

            .......

            Object[] rowData = { Boolean.FALSE, channels.elementAt( i ).Programm};
            channelTable.addRow(rowData);
    }

    @Action
    public void removeChannels() throws Exception
    {
        this.channelTable.removeRow( this.kanalliste.getSelectedRow(  ) );
    }

    public void saveTable(  )
    {
        try
        {
            BufferedWriter b = new BufferedWriter( new FileWriter( "channels.list" ) );

            for( int u = 0; u < this.channelTable.getRowCount(  ); ++u )
            {
                b.write( this.channelTable.getValueAt( u, 0 ).toString(  ) );   //    bool
                b.newLine();
                b.write( this.channelTable.getValueAt( u, 1 ).toString(  ) );   //    String
                b.newLine();
            }
            b.close(  );
        }
        catch( IOException e )
        {
            System.out.println( "Fehler: " + e.toString(  ) );
        }
    }

    public void readTable(  )
    {
        try
        {
            File file = new File( "channels.list" );

            if( file.exists(  ) && !file.isDirectory(  ) )
            {
                System.out.println( "Datei '" + file.getName(  ) + "' gefunden" );

                BufferedReader einDatei = new BufferedReader( new FileReader( file ) );
                String einZeile = new String();
                Boolean readBoth = false;
                Boolean tempBool = false;
                while( ( einZeile = einDatei.readLine(  ) ) != null )
                {
                    if( readBoth == false )
                    {
                        if( einZeile.compareTo( "true" ) == 0 ) // Wenn einZeile true ist
                            tempBool = true;
                        else if( einZeile.compareTo( "false" ) == 0 )
                            tempBool = false;
                        else if( einZeile.compareTo( "true" ) != 0 || einZeile.compareTo( "false" ) != 0 )
                            System.out.println( "lol?" );
                    }

                    if( readBoth == true )
                    {
                        Object[] rowData = { tempBool, einZeile };
                        channelTable.addRow( rowData );
                        System.out.println( "Hinzugefügt: " + tempBool.toString(  ) + " " + einZeile );
                    }

                    if( readBoth == true )
                        readBoth = false;
                    else
                        readBoth = true;
                }
                einDatei.close(  );
            }
            else
            {
                System.out.println( "Datei '" + file.getName(  ) + "' nicht gefunden" );
            }
        }
        catch( IOException e )
        {
            System.out.println( "Fehler: " + e.toString(  ) );
        }
    }

    private class MyTableModel extends DefaultTableModel
    { 
        public MyTableModel(Object[][] data, Object[] columnNames)
        { 
            super(data, columnNames); 
        } 
        Class[] types = new Class[]{Boolean.class, String.class}; 
        boolean[] canEdit = new boolean[]{true, false}; 

        @Override 
        public Class getColumnClass(final int columnIndex)
        { 
            return types[columnIndex]; 
        } 

        @Override 
        public boolean isCellEditable(final int rowIndex, final int columnIndex)
        { 
            return canEdit[columnIndex]; 
        } 
    }

    private void sortTable( final JTable table, final SortOrder order )
    { 
        ArrayList< RowSorter.SortKey > list = new ArrayList< RowSorter.SortKey >( 1 ); 
        list.add( new RowSorter.SortKey( 0, order ) ); 
        TableRowSorter rowSorter = ( TableRowSorter ) table.getRowSorter(  ); 
        rowSorter.setSortKeys( list ); 
        rowSorter.sort(  ); 
    }

    /** This method is called from within the constructor to
     * initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is
     * always regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">
    private void initComponents() {

        mainPanel = new javax.swing.JPanel();
        buttonBack = new javax.swing.JButton();
        buttonPlayPause = new javax.swing.JButton();
        buttonNext = new javax.swing.JButton();
        statusLable = new javax.swing.JLabel();
        buttonOpenChannelList = new javax.swing.JButton();
        buttonRecordings = new javax.swing.JButton();
        buttonRecord = new javax.swing.JButton();
        slider = new javax.swing.JSlider();
        volume = new javax.swing.JSlider();
        jLabel1 = new javax.swing.JLabel();
        jLabel2 = new javax.swing.JLabel();
        jButton1 = new javax.swing.JButton();
        jButton2 = new javax.swing.JButton();
        jScrollPane1 = new javax.swing.JScrollPane();
        kanalliste = new javax.swing.JTable();
        menuBar = new javax.swing.JMenuBar();
        javax.swing.JMenu fileMenu = new javax.swing.JMenu();
        javax.swing.JMenuItem exitMenuItem = new javax.swing.JMenuItem();
        javax.swing.JMenu helpMenu = new javax.swing.JMenu();
        javax.swing.JMenuItem aboutMenuItem = new javax.swing.JMenuItem();
        statusPanel = new javax.swing.JPanel();
        javax.swing.JSeparator statusPanelSeparator = new javax.swing.JSeparator();
        statusMessageLabel = new javax.swing.JLabel();
        statusAnimationLabel = new javax.swing.JLabel();
        progressBar = new javax.swing.JProgressBar();

        mainPanel.setName("mainPanel"); // NOI18N

        javax.swing.ActionMap actionMap = org.jdesktop.application.Application.getInstance(dvbtviewer.DVBTViewerApp.class).getContext().getActionMap(DVBTViewerView.class, this);
        buttonBack.setAction(actionMap.get("backclicked")); // NOI18N
        org.jdesktop.application.ResourceMap resourceMap = org.jdesktop.application.Application.getInstance(dvbtviewer.DVBTViewerApp.class).getContext().getResourceMap(DVBTViewerView.class);
        buttonBack.setText(resourceMap.getString("buttonBack.text")); // NOI18N
        buttonBack.setName("buttonBack"); // NOI18N
        buttonBack.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                buttonBackMouseClicked(evt);
            }
        });

        buttonPlayPause.setAction(actionMap.get("playclicked")); // NOI18N
        buttonPlayPause.setText(resourceMap.getString("buttonPlayPause.text")); // NOI18N
        buttonPlayPause.setName("buttonPlayPause"); // NOI18N
        buttonPlayPause.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                buttonPlayPauseMouseClicked(evt);
            }
        });

        buttonNext.setAction(actionMap.get("nextclicked")); // NOI18N
        buttonNext.setText(resourceMap.getString("buttonNext.text")); // NOI18N
        buttonNext.setName("buttonNext"); // NOI18N
        buttonNext.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                buttonNextMouseClicked(evt);
            }
        });

        statusLable.setText(resourceMap.getString("statusLable.text")); // NOI18N
        statusLable.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0)));
        statusLable.setName("statusLable"); // NOI18N

        buttonOpenChannelList.setAction(actionMap.get("buttonOpenChannelList")); // NOI18N
        buttonOpenChannelList.setText(resourceMap.getString("buttonOpenChannelList.text")); // NOI18N
        buttonOpenChannelList.setName("buttonOpenChannelList"); // NOI18N

        buttonRecordings.setAction(actionMap.get("buttonRecorings")); // NOI18N
        buttonRecordings.setText(resourceMap.getString("buttonRecordings.text")); // NOI18N
        buttonRecordings.setName("buttonRecordings"); // NOI18N

        buttonRecord.setAction(actionMap.get("buttonRecord")); // NOI18N
        buttonRecord.setFont(resourceMap.getFont("buttonRecord.font")); // NOI18N
        buttonRecord.setForeground(resourceMap.getColor("buttonRecord.foreground")); // NOI18N
        buttonRecord.setText(resourceMap.getString("buttonRecord.text")); // NOI18N
        buttonRecord.setName("buttonRecord"); // NOI18N

        slider.setValue(100);
        slider.setName("slider"); // NOI18N

        volume.setName("volume"); // NOI18N
        volume.addPropertyChangeListener(new java.beans.PropertyChangeListener() {
            public void propertyChange(java.beans.PropertyChangeEvent evt) {
                volumePropertyChange(evt);
            }
        });

        jLabel1.setText(resourceMap.getString("jLabel1.text")); // NOI18N
        jLabel1.setName("jLabel1"); // NOI18N

        jLabel2.setText(resourceMap.getString("jLabel2.text")); // NOI18N
        jLabel2.setName("jLabel2"); // NOI18N

        jButton1.setAction(actionMap.get("showAvalibleChannels")); // NOI18N
        jButton1.setText(resourceMap.getString("jButton1.text")); // NOI18N
        jButton1.setName("jButton1"); // NOI18N
        jButton1.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                jButton1MouseClicked(evt);
            }
        });

        jButton2.setAction(actionMap.get("removeChannels")); // NOI18N
        jButton2.setText(resourceMap.getString("jButton2.text")); // NOI18N
        jButton2.setName("jButton2"); // NOI18N

        jScrollPane1.setName("jScrollPane1"); // NOI18N

        kanalliste.setModel(new javax.swing.table.DefaultTableModel(
            new Object [][] {

            },
            new String [] {
                "Fav", "Kanal"
            }
        ) {
            Class[] types = new Class [] {
                java.lang.Boolean.class, java.lang.String.class
            };

            public Class getColumnClass(int columnIndex) {
                return types [columnIndex];
            }
        });
        kanalliste.setColumnSelectionAllowed(true);
        kanalliste.setDoubleBuffered(true);
        kanalliste.setDragEnabled(true);
        kanalliste.setGridColor(resourceMap.getColor("kanalliste.gridColor")); // NOI18N
        kanalliste.setName("kanalliste"); // NOI18N
        kanalliste.setPreferredSize(new java.awt.Dimension(90, 64));
        kanalliste.setSelectionMode(javax.swing.ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
        kanalliste.getTableHeader().setReorderingAllowed(false);
        kanalliste.addComponentListener(new java.awt.event.ComponentAdapter() {
            public void componentMoved(java.awt.event.ComponentEvent evt) {
                channelMoved(evt);
            }
        });
        kanalliste.addPropertyChangeListener(new java.beans.PropertyChangeListener() {
            public void propertyChange(java.beans.PropertyChangeEvent evt) {
                kanallistePropertyChange(evt);
            }
        });
        kanalliste.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                kanallisteMouseClicked(evt);
            }
        });
        kanalliste.addContainerListener(new java.awt.event.ContainerAdapter() {
            public void componentAdded(java.awt.event.ContainerEvent evt) {
                channelAdded(evt);
            }
            public void componentRemoved(java.awt.event.ContainerEvent evt) {
                channelRemoved(evt);
            }
        });
        jScrollPane1.setViewportView(kanalliste);
        kanalliste.getColumnModel().getSelectionModel().setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION);
        kanalliste.getColumnModel().getColumn(0).setResizable(false);
        kanalliste.getColumnModel().getColumn(0).setPreferredWidth(1);
        kanalliste.getColumnModel().getColumn(0).setHeaderValue(resourceMap.getString("kanalliste.columnModel.title0")); // NOI18N
        kanalliste.getColumnModel().getColumn(1).setHeaderValue(resourceMap.getString("kanalliste.columnModel.title1")); // NOI18N

        org.jdesktop.layout.GroupLayout mainPanelLayout = new org.jdesktop.layout.GroupLayout(mainPanel);
        mainPanel.setLayout(mainPanelLayout);
        mainPanelLayout.setHorizontalGroup(
            mainPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(mainPanelLayout.createSequentialGroup()
                .add(mainPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                    .add(mainPanelLayout.createSequentialGroup()
                        .add(buttonBack, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 65, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(org.jdesktop.layout.LayoutStyle.UNRELATED)
                        .add(buttonPlayPause, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 69, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(org.jdesktop.layout.LayoutStyle.UNRELATED)
                        .add(buttonNext, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 64, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                        .add(statusLable, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 339, Short.MAX_VALUE))
                    .add(mainPanelLayout.createSequentialGroup()
                        .add(30, 30, 30)
                        .add(jLabel2, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 14, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                        .add(volume, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 145, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                        .add(jLabel1)
                        .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED, 25, Short.MAX_VALUE)
                        .add(buttonRecord)
                        .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                        .add(buttonRecordings)
                        .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                        .add(buttonOpenChannelList))
                    .add(org.jdesktop.layout.GroupLayout.TRAILING, mainPanelLayout.createSequentialGroup()
                        .add(20, 20, 20)
                        .add(slider, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 526, Short.MAX_VALUE))
                    .add(mainPanelLayout.createSequentialGroup()
                        .addContainerGap()
                        .add(jButton1, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 58, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(org.jdesktop.layout.LayoutStyle.UNRELATED)
                        .add(jButton2, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 60, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
                    .add(mainPanelLayout.createSequentialGroup()
                        .addContainerGap()
                        .add(jScrollPane1, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 526, Short.MAX_VALUE)))
                .addContainerGap())
        );
        mainPanelLayout.setVerticalGroup(
            mainPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(mainPanelLayout.createSequentialGroup()
                .add(mainPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
                    .add(buttonBack)
                    .add(buttonPlayPause, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 46, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                    .add(buttonNext)
                    .add(statusLable))
                .addPreferredGap(org.jdesktop.layout.LayoutStyle.UNRELATED)
                .add(slider, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                .add(mainPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                    .add(mainPanelLayout.createSequentialGroup()
                        .add(4, 4, 4)
                        .add(mainPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                            .add(mainPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
                                .add(buttonOpenChannelList)
                                .add(buttonRecordings)
                                .add(buttonRecord)
                                .add(jLabel1))
                            .add(volume, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)))
                    .add(mainPanelLayout.createSequentialGroup()
                        .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                        .add(jLabel2)))
                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .add(jScrollPane1, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 171, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(org.jdesktop.layout.LayoutStyle.UNRELATED)
                .add(mainPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
                    .add(jButton1)
                    .add(jButton2))
                .add(211, 211, 211))
        );

        menuBar.setDoubleBuffered(true);
        menuBar.setFocusable(false);
        menuBar.setFont(resourceMap.getFont("menuBar.font")); // NOI18N
        menuBar.setName("menuBar"); // NOI18N

        fileMenu.setText(resourceMap.getString("fileMenu.text")); // NOI18N
        fileMenu.setName("fileMenu"); // NOI18N

        exitMenuItem.setAction(actionMap.get("quit")); // NOI18N
        exitMenuItem.setName("exitMenuItem"); // NOI18N
        fileMenu.add(exitMenuItem);

        menuBar.add(fileMenu);

        helpMenu.setText(resourceMap.getString("helpMenu.text")); // NOI18N
        helpMenu.setName("helpMenu"); // NOI18N

        aboutMenuItem.setAction(actionMap.get("showAboutBox")); // NOI18N
        aboutMenuItem.setName("aboutMenuItem"); // NOI18N
        helpMenu.add(aboutMenuItem);

        menuBar.add(helpMenu);

        statusPanel.setName("statusPanel"); // NOI18N

        statusMessageLabel.setName("statusMessageLabel"); // NOI18N

        statusAnimationLabel.setHorizontalAlignment(javax.swing.SwingConstants.LEFT);
        statusAnimationLabel.setName("statusAnimationLabel"); // NOI18N

        progressBar.setName("progressBar"); // NOI18N

        org.jdesktop.layout.GroupLayout statusPanelLayout = new org.jdesktop.layout.GroupLayout(statusPanel);
        statusPanel.setLayout(statusPanelLayout);
        statusPanelLayout.setHorizontalGroup(
            statusPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(statusPanelSeparator, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 566, Short.MAX_VALUE)
            .add(statusPanelLayout.createSequentialGroup()
                .addContainerGap()
                .add(statusMessageLabel)
                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED, 370, Short.MAX_VALUE)
                .add(progressBar, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                .add(statusAnimationLabel)
                .addContainerGap())
        );
        statusPanelLayout.setVerticalGroup(
            statusPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(statusPanelLayout.createSequentialGroup()
                .add(statusPanelSeparator, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 2, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .add(statusPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
                    .add(statusMessageLabel)
                    .add(statusAnimationLabel)
                    .add(progressBar, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
                .add(3, 3, 3))
        );

        setComponent(mainPanel);
        setMenuBar(menuBar);
        setStatusBar(statusPanel);
    }// </editor-fold>

private void jButton1MouseClicked(java.awt.event.MouseEvent evt) {                                      
// TODO add your handling code here:
}                                     

private void buttonNextMouseClicked(java.awt.event.MouseEvent evt) {                                        
// TODO add your handling code here:
    //this.jkanalliste.setSelectedIndex(this.jkanalliste.getSelectedIndex()+1);
    this.kanalliste.setRowSelectionInterval(this.kanalliste.getSelectedRow()+1, this.kanalliste.getSelectedRow()+1);
    meineGlotze.setChannel( this.kanalliste.getValueAt( this.kanalliste.getSelectedRow(), this.kanalliste.getSelectedColumn() ).toString() );
    //meineGlotze.setChannel(this.jkanalliste.getSelectedValue().toString());
}                                       

private void buttonBackMouseClicked(java.awt.event.MouseEvent evt) {                                        
// TODO add your handling code here:
    //this.jkanalliste.setSelectedIndex(this.jkanalliste.getSelectedIndex()-1);
    this.kanalliste.setRowSelectionInterval(this.kanalliste.getSelectedRow()-1, this.kanalliste.getSelectedRow()-1);
    meineGlotze.setChannel( this.kanalliste.getValueAt( this.kanalliste.getSelectedRow(), this.kanalliste.getSelectedColumn() ).toString() );
    //meineGlotze.setChannel(this.jkanalliste.getSelectedValue().toString());
}                                       

private void buttonPlayPauseMouseClicked(java.awt.event.MouseEvent evt) {                                             
// TODO add your handling code here:
}                                            

private void volumePropertyChange(java.beans.PropertyChangeEvent evt) {                                      
// TODO add your handling code here:
}                                     

private void kanallistePropertyChange(java.beans.PropertyChangeEvent evt) {                                          
// TODO add your handling code here:
}                                         

private void kanallisteMouseClicked(java.awt.event.MouseEvent evt) {                                        
    sortTable( this.kanalliste, SortOrder.DESCENDING );
    saveTable(  );
}                                       

private void channelAdded(java.awt.event.ContainerEvent evt) {
    sortTable( this.kanalliste, SortOrder.DESCENDING );
    saveTable(  );
}

private void channelMoved(java.awt.event.ComponentEvent evt) {
    sortTable( this.kanalliste, SortOrder.DESCENDING );
    saveTable(  );
}

private void channelRemoved(java.awt.event.ContainerEvent evt) {
    sortTable( this.kanalliste, SortOrder.DESCENDING );
    saveTable(  );
}

    // Variables declaration - do not modify
    private javax.swing.JButton buttonBack;
    private javax.swing.JButton buttonNext;
    private javax.swing.JButton buttonOpenChannelList;
    private javax.swing.JButton buttonPlayPause;
    private javax.swing.JButton buttonRecord;
    private javax.swing.JButton buttonRecordings;
    private javax.swing.JButton jButton1;
    private javax.swing.JButton jButton2;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JLabel jLabel2;
    private javax.swing.JScrollPane jScrollPane1;
    private javax.swing.JTable kanalliste;
    private javax.swing.JPanel mainPanel;
    private javax.swing.JMenuBar menuBar;
    private javax.swing.JProgressBar progressBar;
    private javax.swing.JSlider slider;
    private javax.swing.JLabel statusAnimationLabel;
    private javax.swing.JLabel statusLable;
    private javax.swing.JLabel statusMessageLabel;
    private javax.swing.JPanel statusPanel;
    private javax.swing.JSlider volume;
    // End of variables declaration

    private final Timer messageTimer;
    private final Timer busyIconTimer;
    private final Icon idleIcon;
    private final Icon[  ] busyIcons = new Icon[ 15 ];
    private int busyIconIndex = 0;

    private JDialog aboutBox;

    public DefaultTableModel channelTable = new DefaultTableModel(  );
}
 

André Uhres

Top Contributor
Enweder das vollständige Projekt mit allen Input Dateien irgendwo hochladen oder eine kurzes, selbständiges und kompilierbares Beispiel basteln. Mit einem Zwischending wo nix zusammenpasst kommen wir kaum weiter.
 

Garret

Mitglied
Ich hab das Problem gefunden, das böse NetBeans hat folgenden Code automatisch generiert:
Code:
meineJTable.setPreferredSize(new java.awt.Dimension(90, 64));

Dadurch war die Tabelle kleiner als die Werte platz gebaucht hätten, warum keine Scrollbar angezeigt wurde weiß ich allerdings auch nicht.

Ich hab die Zeile jetzt erstmal auskommentiert und die Tabelle geht bestens :), (diesmal auch mit Scrollbar)
Das heißt... außer das ich die Spaltenbreite irgendwie nicht richtig einstellen kann

Code:
kanalliste.getColumnModel().getSelectionModel().setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION);kanalliste.getColumnModel().getColumn(0).setResizable(false);
kanalliste.getColumnModel().getColumn(0).setPreferredWidth(20);


Ansonsten danke an alle die Ihre kostbare Zeit hier geopfert haben! :)
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
Soloeco JList/DefaultListModel: Wie kann ich ein Panel hinzufügen? Java Basics - Anfänger-Themen 1
N JList + DefaultListModel + JScrollPane --> ensureIndexIsVisible funktioniert nicht immer Java Basics - Anfänger-Themen 1
W NullPointerException bei DefaultListModel Java Basics - Anfänger-Themen 5
M Elemente im DefaultListModel separat auslesen Java Basics - Anfänger-Themen 2
K Erste Schritte prob mit DefaultListModel (string) Java Basics - Anfänger-Themen 8
M DefaultListModel Markierung Java Basics - Anfänger-Themen 2
N DefaultListModel auf JList sortieren Java Basics - Anfänger-Themen 7
Q Listen - DefaultListModel trotz Design ueber GUI? Java Basics - Anfänger-Themen 10
hdi Fehler beim Model-Update einer JList (DefaultListModel) Java Basics - Anfänger-Themen 3
J bestimmtes Element aus DefaultListModel ausgeben? Java Basics - Anfänger-Themen 2
M NullpointerException bei DefaultListModel Java Basics - Anfänger-Themen 7
E Datenbank Spalte zusammenzählen Java Basics - Anfänger-Themen 2
O 2D-Array nach einer Spalte sortieren Java Basics - Anfänger-Themen 22
J PdfTable Spalte höher stellen Java Basics - Anfänger-Themen 2
B jTable Spalte summieren Java Basics - Anfänger-Themen 7
K Apache POI Excel Letzte Reihe einer bestimmten Spalte Java Basics - Anfänger-Themen 1
B Wieso wird die Zeile "column" genannt und die Spalte "line"? Java Basics - Anfänger-Themen 12
K Compiler-Fehler Durchschnitt einer Spalte in einem 2D-Array Java Basics - Anfänger-Themen 1
J Durchschnitt jeder Zeile und und Spalte in einem 2D Arrays berechnen Java Basics - Anfänger-Themen 6
K Collections Sortieren nach zweiter Spalte in JTable Java Basics - Anfänger-Themen 18
S Eine Spalte einer CSV Datei ausgeben Java Basics - Anfänger-Themen 2
C Datei mit Daten einlesen und höchsten wert der zweiten Spalte ermitteln Java Basics - Anfänger-Themen 1
B Zweidimensionales Array Elemente jeder Spalte zählen Java Basics - Anfänger-Themen 9
G Spalte in JTable unsichtbar machen, Zugriff auf Daten ermöglichen Java Basics - Anfänger-Themen 2
A Button in eine bestimmte Spalte platzieren Java Basics - Anfänger-Themen 4
Rayo Lese Zahl in Zeile x aus Spalte y ein! Java Basics - Anfänger-Themen 36
M JTable einzelne Spalte rechtsbündig Java Basics - Anfänger-Themen 2
Kenan89 JTable Spalte nicht editierbar Java Basics - Anfänger-Themen 7
C Spalte einer Textdatei einlesen Java Basics - Anfänger-Themen 10
H JTable Spalte fixieren Java Basics - Anfänger-Themen 2
F ComboBox sowie String in einer JTable Spalte Java Basics - Anfänger-Themen 2
L Spalte aus Array Java Basics - Anfänger-Themen 19
B Werte einer Spalte aus DB in einen Vector schreiben Java Basics - Anfänger-Themen 15
J 2D Array - Zeile+Spalte Streichen Java Basics - Anfänger-Themen 2
Z Focus auf die letze Spalte Java Basics - Anfänger-Themen 9
Z JTable Spalte ausblenden Java Basics - Anfänger-Themen 5
M JTable Spalte ist bigDecimal Java Basics - Anfänger-Themen 2
R java Spalte-, Zeilebearbeitung von txt Dateien Java Basics - Anfänger-Themen 4
M Spalte aus 2d array übergeben Java Basics - Anfänger-Themen 4
F 2DArray jede Spalte Addieren Java Basics - Anfänger-Themen 8
G Problem beim Spalte hinzufügen in meiner tabelle. Java Basics - Anfänger-Themen 6
A String[] array in vertikale Spalte einer JTable ausgeben? Java Basics - Anfänger-Themen 8
B Ausgewählte Spalte aus JTable abfragen Java Basics - Anfänger-Themen 9
D Checkbox in JTable(Spalte) einfügen. Java Basics - Anfänger-Themen 2
B Komponenten einer Zeile, Spalte des GridLayouts hinzufügen Java Basics - Anfänger-Themen 3
C Anstatt Spalte, Zeile mit Comparator sortieren . Java Basics - Anfänger-Themen 5
N Ermitteln der Spaltenbreite => DATE-Spalte hat Länge 8 ?! Java Basics - Anfänger-Themen 10
G JTable Reihe und Spalte Java Basics - Anfänger-Themen 7
M renderer macht nur 1 spalte bunt Java Basics - Anfänger-Themen 5
G 2 Fragen zu JTable (Spalte färben, Spalte entfernen) Java Basics - Anfänger-Themen 6
D erste spalte eines zweidimensionales Array sortieren ??!! Java Basics - Anfänger-Themen 2
richis-fragen JTable den angezeigten WERT nicht den Wert aus dem Model ausgeben. Java Basics - Anfänger-Themen 3
richis-fragen JTable Header ausgeblendete (width = 0) nicht per mouseDragged aufziehen. Java Basics - Anfänger-Themen 9
richis-fragen JTable sowohl Spaltennamen wie auch Spaltenbeschriftungen Java Basics - Anfänger-Themen 7
richis-fragen JTable effektiv angezeigter Text ausgeben nicht Inhalt vom Model Java Basics - Anfänger-Themen 9
G JTable Listselectionlistener friert das Programm ein Java Basics - Anfänger-Themen 8
Mady Daten von JList & Combobox in JTable adden Java Basics - Anfänger-Themen 2
W Liste mit Listen in JTable darstellen Java Basics - Anfänger-Themen 1
J Zelleninhalt einer Jtable löschen Java Basics - Anfänger-Themen 2
E JTable einzelne Zelle färben Java Basics - Anfänger-Themen 2
thobren jtable arraylist Java Basics - Anfänger-Themen 12
thobren JTable Icon Java Basics - Anfänger-Themen 1
R Compiler-Fehler JTable mit XML befüllen | The constructor JTable(Object[], String[]) is undefined Java Basics - Anfänger-Themen 10
H Kapselung JProgressBar in JTable, aber getValueAt() greift nicht Java Basics - Anfänger-Themen 7
G JTable, Zeile auswählen und Ergebnis an Schaltfläche übergeben Java Basics - Anfänger-Themen 4
J Jtable Eingabe nach Klick ausserhalb der Tabelle übernehmen Java Basics - Anfänger-Themen 6
J JTable Spalteninhalt löschen Java Basics - Anfänger-Themen 1
J JTable Titel wird nicht angezeigt Java Basics - Anfänger-Themen 6
N JTable auslesen Java Basics - Anfänger-Themen 6
O JTable in Excel mit Farben Java Basics - Anfänger-Themen 8
O Kommentar auf JTable Zelle Java Basics - Anfänger-Themen 2
M Jtable Reenderer Java Basics - Anfänger-Themen 0
O Popoup Menü im JTable richtig anzeigen Java Basics - Anfänger-Themen 6
M Jtable änderung updaten Java Basics - Anfänger-Themen 2
O JTable Suchfunktion Java Basics - Anfänger-Themen 2
M jTable bekommt null Java Basics - Anfänger-Themen 1
M JTable an andere Klasse übergeben Java Basics - Anfänger-Themen 2
M Datenbank in jTable Laden Java Basics - Anfänger-Themen 49
M Klasse in JTable einfügen Java Basics - Anfänger-Themen 7
S JTable Java Basics - Anfänger-Themen 16
S JTable mit Daten füllen Java Basics - Anfänger-Themen 7
L JTable Tagebuch Spaltenhöhe verändern Java Basics - Anfänger-Themen 3
S JTable - Filter an anderen Colums Java Basics - Anfänger-Themen 2
R JTable Suchfunktion mit SQL Daten Java Basics - Anfänger-Themen 2
C JTable update mit MySQL Datenbank Java Basics - Anfänger-Themen 1
C Best Practice JTable in MVC Pattern Java Basics - Anfänger-Themen 7
J Daten einer Textdatei in ein JTable importieren. Java Basics - Anfänger-Themen 3
A zykl. Aktualisierne JTable Java Basics - Anfänger-Themen 9
C Endlosschleife bei füllen von Daten im JTable Java Basics - Anfänger-Themen 5
C Werte aus JTable auslesen Java Basics - Anfänger-Themen 4
A Probleme beim zykl. aktulisieren von Daten in JTable Java Basics - Anfänger-Themen 3
V JTable welcher Listener ? Java Basics - Anfänger-Themen 7
D Falsche Zeile wird in JTable gelöscht Java Basics - Anfänger-Themen 6
D MySQL Abfrage in JTable speichern Java Basics - Anfänger-Themen 43
D JTable Zeile wird nicht in MySQL gelöscht Java Basics - Anfänger-Themen 16
D JTable Zeilen löschen Java Basics - Anfänger-Themen 5
C Klassen JTable wird ohne Header aufgebaut Java Basics - Anfänger-Themen 6
K (JTable) Text einer Zelle auf der linken Seite kürzel Java Basics - Anfänger-Themen 2
B Kniffel JTable Java Basics - Anfänger-Themen 5
N JTable flackert Java Basics - Anfänger-Themen 8

Ähnliche Java Themen

Neue Themen


Oben