Hallo,
ich bin noch sehr ungeübt im Umgang mit UI-Komponenten und habe im Moment mehrere Probleme mit meiner ScrollPane.
Als ich sie noch nicht hatte, wurde der Text ganz normal von oben beginnend eingefügt und unten eben abgeschnitten.
Jetzt glaube ich, dass sich die Scrollbar nicht richtig anpasst, sie würde für die vielen Einträge nicht ausreichen, außerdem zeigt die TextArea (evtl deswegen) nur die letzten Einträge an.
Das ist die Methode, die die Worklog-Einträge der JTextArea hinzufügt:
Und die dazugehörigen UI--Elemente:
Die UI-Elemente sind nicht in der Methode deklariert, damit ich von der Methode, die den Worklog schreibt, darauf zugreifen kann.
Wie gesagt: Mir werden auf meiner TextArea nur die letzten beiden Einträge angezeigt, in der Konsolenausgabe werden alle ausgegeben.
ich bin noch sehr ungeübt im Umgang mit UI-Komponenten und habe im Moment mehrere Probleme mit meiner ScrollPane.
Als ich sie noch nicht hatte, wurde der Text ganz normal von oben beginnend eingefügt und unten eben abgeschnitten.
Jetzt glaube ich, dass sich die Scrollbar nicht richtig anpasst, sie würde für die vielen Einträge nicht ausreichen, außerdem zeigt die TextArea (evtl deswegen) nur die letzten Einträge an.
Das ist die Methode, die die Worklog-Einträge der JTextArea hinzufügt:
Code:
for(int i=0; i< worklogArray.length(); i++)
{
if(worklogArray.getJSONArray(i).length()!= 0)
{
ui.worklogAusgabe.setText("");
//System.out.println("Worklog für Issue ");
for (int j = 0; j < worklogArray.getJSONArray(i).length(); j++)
{
int zeit = (int)worklogArray.getJSONArray(i).getJSONObject(j).get("timeSpentSeconds");
int stunden = (int) zeit / 3600;
int minuten = (int) (zeit - stunden * 3600) / 60;
String bearbeitetVon = worklogArray.getJSONArray(i).getJSONObject(j).getJSONObject("author").get("displayName").toString();
//System.out.println(bearbeitetVon + " für "+stunden + " Stunde(n) " + minuten + " Minuten");
ui.worklogAusgabe.append(bearbeitetVon + " für "+stunden + " Stunde(n) " + minuten + " Minuten\n");
JSONObject writableObject = new JSONObject();
Worklog wrObject = new Worklog();
wrObject.setBearbeiter(bearbeitetVon);
wrObject.setZeit(stunden + " Stunde(n) " + minuten + " Minuten");
writableWorklogs.add(wrObject);
ui.bar.setValue(ui.bar.getMaximum());
ui.worklogAusgabe.repaint();
ui.worklogAusgabe.repaint();
}
//System.out.println();
}
}
Und die dazugehörigen UI--Elemente:
Code:
JPanel worklogPanel = new JPanel();
worklogPanel.setPreferredSize(new Dimension(300,500));
worklogAusgabe.setPreferredSize(new Dimension(300,500)); //JTextArea
bar.setValue(bar.getMaximum()); //JScrollbar
textbox.setPreferredSize(new Dimension(300, 500)); //JScrollPane
worklogPanel.add(textbox);
Die UI-Elemente sind nicht in der Methode deklariert, damit ich von der Methode, die den Worklog schreibt, darauf zugreifen kann.
Wie gesagt: Mir werden auf meiner TextArea nur die letzten beiden Einträge angezeigt, in der Konsolenausgabe werden alle ausgegeben.