Hallo,
meine Ausgabe in einer JTextArea funktioniert nicht so wie ich es möchte(Formartierung).
Ich möchte daher die Ausgabe in einer JTable machen mit JScrollPane.
Ich bin bisher noch nicht fündig geworden bezüglich einer Erklärung (an einem simplen Beispiel) was und wie man etwas machen muss. Wie fülle ich die Tabelle und gebe Sie aus in meiner Routine fuelleTable.
Könnte mir jemand dies anhand von einem bzw. meinem Code erklären. Hier nun meine Anwendung.
meine Ausgabe in einer JTextArea funktioniert nicht so wie ich es möchte(Formartierung).
Ich möchte daher die Ausgabe in einer JTable machen mit JScrollPane.
Ich bin bisher noch nicht fündig geworden bezüglich einer Erklärung (an einem simplen Beispiel) was und wie man etwas machen muss. Wie fülle ich die Tabelle und gebe Sie aus in meiner Routine fuelleTable.
Könnte mir jemand dies anhand von einem bzw. meinem Code erklären. Hier nun meine Anwendung.
Java:
public class FrameLocale1 extends JFrame {
private JButton button;
JTextArea ta = new JTextArea();
private int ausgabeZaehler = 0;
String[] columnNames = {
"Nr.",
"Sprache",
"Land",
"Spr.-Abk.",
"Land.Abk."};
Object[][] data;
JTable table = new JTable(data, columnNames);
JScrollPane scrollpane = new JScrollPane(table);
public FrameLocale1(){
setTitle("Anlisten Locale");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(10, 10, 800, 650);
button = new JButton("Starten Auflistung Locale");
add(button, BorderLayout.NORTH);
setVisible(true);
button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
neuerFrameTitel();
}
});
add(ta);
}
public void neuerFrameTitel() {
Locale[] allLocales = Locale.getAvailableLocales();
Comparator<Locale> cmp = new Comparator<Locale>() {
public int compare(Locale loc1 ,Locale loc2) {
int erg = loc1.getDisplayCountry().compareTo( loc2.getDisplayCountry() );
if(erg != 0)
return erg;
return loc1.getDisplayLanguage().compareTo(loc2.getDisplayLanguage()) ;
}
};
Arrays.sort(allLocales, cmp);
fuelleTable(allLocales);
}
public void fuelleTable(Locale[] arr) {
table.add(columnNames); //fuellen ueberschrift ??
StringBuffer sb = new StringBuffer();
sb.append(String.format( "| %5s|%15s|%31s|%12s|%12s|%n", "Nr.", "Sprache", "Land", "Spr.-Abk.", "Land.Abk."));
int merker = 0;
for (int i = ausgabeZaehler; i < arr.length; i++) {
Locale locale = arr[i];
merker++;
if (merker == 35)
break;
String fmt = String.format( "| %03d|%15s|%31s|%12s|%12s|%n",
(i+1), locale.getDisplayLanguage(), locale.getDisplayCountry(),
locale.getLanguage(), locale.getCountry());
sb.append(fmt);
System.out.format(fmt);
}
ta.setText(sb.toString());
if (merker == 35)
button.setText("Nächste Seite");
else{
button.setText("Starten Auflistung Locale");
merker = 0;
ausgabeZaehler = 0;
}
ausgabeZaehler += merker;
}
public static void main(String[] args) {
FrameLocale1 cc = new FrameLocale1();
}
}