K
KlemensyXYZ
Gast
Hallo,
ich möchte folgende Tabelle für eine Rangliste nach der Höhe der Punkte sortieren:
doch wie bekomme ich (siehe Kommentar im Quelltext) hier:
in meine Quelltext das Model rein?
ist der Rest sonst richtig?
Und kann man eine Tabelle bei mehr als 10 Einträgen irgendwie automatisch größer bekommen?
Danke
ich möchte folgende Tabelle für eine Rangliste nach der Höhe der Punkte sortieren:
Java:
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
/*
* Rangliste.java
*
* Created on 02.11.2011, 17:43:49
*/
package rangliste;
import java.awt.Image;
import java.util.Comparator;
import javax.swing.table.TableModel;
import javax.swing.table.TableRowSorter;
/**
*
* @author Klemens
*/
@SuppressWarnings("serial")
public class Rangliste extends javax.swing.JFrame {
String Sp1Name; //bekommen noch Werte zugeordnet
int SP1Punkte;
String Sp1Datum;
String Sp2Name;
int SP2Punkte;
String Sp2Datum;
String Sp3Name;
int SP3Punkte;
String Sp3Datum;
String Sp4Name;
int SP4Punkte;
String Sp4Datum;
String Sp5Name;
int SP5Punkte;
String Sp5Datum;
String Sp6Name;
int SP6Punkte;
String Sp6Datum;
String Sp7Name;
int SP7Punkte;
String Sp7Datum;
String Sp8Name;
int SP8Punkte;
String Sp8Datum;
String Sp9Name;
int SP9Punkte;
String Sp9Datum;
String Sp10Name;
int SP10Punkte;
String Sp10Datum;
/** Creates new form Rangliste */
public Rangliste() {
super("Rangliste");
java.net.URL iconUrl = this.getClass().getResource("/rangliste/Chart.png");
Image img = getToolkit().getImage(iconUrl);
setIconImage(img);
initComponents();
}
/** 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() {
jLabel1 = new javax.swing.JLabel();
jLabel2 = new javax.swing.JLabel();
jScrollPane1 = new javax.swing.JScrollPane();
jTable1 = new javax.swing.JTable();
SchliessenButton = new javax.swing.JButton();
setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
jLabel1.setIcon(new javax.swing.ImageIcon(getClass().getResource("/rangliste/Chart.png"))); // NOI18N
jLabel2.setFont(new java.awt.Font("Tahoma", 0, 36));
jLabel2.setText("Rangliste");
jTable1.setModel(new javax.swing.table.DefaultTableModel(
new Object [][] {
{new Integer(1), Sp1Name, SP1Punkte, Sp1Datum},
{new Integer(2), Sp1Name, SP1Punkte, Sp1Datum},
{new Integer(3), Sp1Name, SP1Punkte, Sp1Datum},
{new Integer(4), Sp1Name, SP1Punkte, Sp1Datum},
{new Integer(5), Sp1Name, SP1Punkte, Sp1Datum},
{new Integer(6), Sp1Name, SP1Punkte, Sp1Datum},
{new Integer(7), Sp1Name, SP1Punkte, Sp1Datum},
{new Integer(8), Sp1Name, SP1Punkte, Sp1Datum},
{new Integer(9), Sp1Name, SP1Punkte, Sp1Datum},
{new Integer(10), Sp1Name, SP1Punkte, Sp1Datum}
},
new String [] {
"Nr.", "Name", "Punkte", "Datum"
}
) {
@SuppressWarnings("rawtypes")
Class[] types = new Class [] {
java.lang.Integer.class, java.lang.String.class, java.lang.Integer.class, java.lang.String.class
};
boolean[] canEdit = new boolean [] {
false, false, false, false
};
@SuppressWarnings("rawtypes")
public Class getColumnClass(int columnIndex) {
return types [columnIndex];
}
public boolean isCellEditable(int rowIndex, int columnIndex) {
return canEdit [columnIndex];
}
});
jTable1.setColumnSelectionAllowed(true);
jScrollPane1.setViewportView(jTable1);
TableRowSorter<TableModel> rowSorter = new TableRowSorter<TableModel>( model ); //Wie bekommt man hier das richtige Model rein?
jTable1.setRowSorter( rowSorter );
rowSorter.setComparator( 2, new Comparator<Integer>()
{
public int compare( Integer Punkte1, Integer Punkte2 )
{
int i1 = Punkte1, i2 = Punkte2;
return (Integer.bitCount( i1 ) - Integer.bitCount( i2 ));
}
} );
SchliessenButton.setText("Schließen");
SchliessenButton.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
SchliessenButtonActionPerformed(evt);
}
});
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addComponent(jLabel1)
.addGap(18, 18, 18)
.addComponent(jLabel2))
.addComponent(jScrollPane1, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, 380, Short.MAX_VALUE)
.addComponent(SchliessenButton, javax.swing.GroupLayout.Alignment.TRAILING))
.addContainerGap())
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addComponent(jLabel1))
.addGroup(layout.createSequentialGroup()
.addGap(19, 19, 19)
.addComponent(jLabel2)))
.addGap(18, 18, 18)
.addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 187, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(SchliessenButton)
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
);
pack();
}// </editor-fold>
private void SchliessenButtonActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
this.dispose();
}
/**
* @param args the command line arguments
*/
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new Rangliste().setVisible(true);
}
});
}
// Variables declaration - do not modify
private javax.swing.JButton SchliessenButton;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel2;
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JTable jTable1;
// End of variables declaration
}
doch wie bekomme ich (siehe Kommentar im Quelltext) hier:
Code:
TableRowSorter<TableModel> rowSorter = new TableRowSorter<TableModel>( model );
ist der Rest sonst richtig?
Und kann man eine Tabelle bei mehr als 10 Einträgen irgendwie automatisch größer bekommen?
Danke