smathedark
Mitglied
Hallo,
ich habe ein Problem mit meiner Gui. Ich benutze eine JTextArea um die Ausgaben anderer Programme in meinem Programm anzuzeigen. Dazu schreibe ich die Ausgaben der anderen Programme in mein Datenmodell und benachrichtige die View das neue Daten vorliegen. Diese führt dann ihre update Methode aus und zeigt auch korrekt die neuen Daten an. Das Problem hierbei ist jetzt das die Textarea sehr unangenehm flackert. Es sieht so aus, als wenn immer erst die Textarea gelöscht wird und dann der neue Text eingefügt.
Hier mal der Code der update Methode.
Hoffe mir kann jemand helfen, da es so echt auf die Augen geht.
Danke schonmal.
ich habe ein Problem mit meiner Gui. Ich benutze eine JTextArea um die Ausgaben anderer Programme in meinem Programm anzuzeigen. Dazu schreibe ich die Ausgaben der anderen Programme in mein Datenmodell und benachrichtige die View das neue Daten vorliegen. Diese führt dann ihre update Methode aus und zeigt auch korrekt die neuen Daten an. Das Problem hierbei ist jetzt das die Textarea sehr unangenehm flackert. Es sieht so aus, als wenn immer erst die Textarea gelöscht wird und dann der neue Text eingefügt.
Hier mal der Code der update Methode.
Code:
@Override
public void update(Observable arg0, Object arg1) {
this.setTitle(this.model.getTest().getMtNumber() + " " + this.model.getTest().getTestType());
Object[] moduleList=this.model.getModuleNameList().toArray();
this.mainModulList.setListData(moduleList);
if(this.controller.getIsStarted()){
if(TestExecuterView.this.debugButton!=null){
if(TestExecuterView.this.debugButton.isEnabled()){
TestExecuterView.this.debugButton.setEnabled(false);
}
}
String outPut="\n"+this.model.getModuleOutput().getLastLine();
if(outPut!=null){
this.mainModulArea.append(outPut);
}
this.mainModulList.setSelectedIndex(this.model.getStartedModule());
Point point = new Point( 0, (int)(mainModulArea.getSize().getHeight()) );
TestExecuterView.this.mainModulPanel.getViewport().setViewPosition( point );
}else{
this.mainModulArea.setText("");
if(TestExecuterView.this.debugButton!=null){
if(!TestExecuterView.this.debugButton.isEnabled()){
TestExecuterView.this.debugButton.setEnabled(true);
}
}
}
if(this.telnet){
this.mainTelnetArea.append(this.model.getLastTelnetLine());
Point point = new Point( 0, (int)(mainTelnetArea.getSize().getHeight()) );
TestExecuterView.this.mainTelnetScrollPane.getViewport().setViewPosition( point );
}
}
Danke schonmal.