Was haltet ihr von meinem Quellcode - JConsole?

Status
Nicht offen für weitere Antworten.
D

Dr.House

Gast
Schönen guten Abend,

und zwar hab ich eine Console geschrieben und wollte mal wissen was ihr davon haltet - gibt es Lags oder irgendwelche Unschönen Dinge? Verbesserungen?

Code:
/*
 * Created on 07.06.2007
 *
 * TODO To change the template for this generated file go to
 * Window - Preferences - Java - Code Style - Code Templates
 */

/**
 * @author &KFmobile
 *
 * TODO To change the template for this generated type comment go to
 * Window - Preferences - Java - Code Style - Code Templates
 */

import javax.swing.*;
import java.awt.Font;
import java.awt.Color;
import java.awt.GridLayout;

import java.awt.*;
import javax.swing.text.*;


public class JConsoleFrame extends JFrame
{
	private int			msg_cnt			= 0;
	private boolean 	bIniTextpane	= false;
	private JTextPane 	textArea 		= new JTextPane();
	
	public JConsoleFrame()
	{
		setTitle( "Console" );
		
		//textArea = new JTextPane();
		//textArea.disable();
		textArea.setEditable(false);
		//textPane.insertIcon(new Icon("test.gif"));
		getContentPane().add( textArea );
		bIniTextpane = true;
		
		textArea.setForeground(Color.blue);
		
		
		// define scroll bar
		JScrollPane scrollingArea = new JScrollPane( textArea );
	
		// define panel for scrollbar 
        JPanel content = new JPanel();
        content.setLayout(new BorderLayout());
        content.add(scrollingArea, BorderLayout.CENTER);
        setContentPane(content);        
        
        textArea.setFont( new Font("Courier New", Font.PLAIN, 14 ) );
        
        // add starting text
        addText ( "Starting console" );
		pack();
		
		// resize frame
		setSize( 600, 500 );
	}

	
	public void addLine( String line )
	{
		if( bIniTextpane )
		{
			addText( "\n> "+line );
			msg_cnt++;
		}
		else
		{
		}
	}
	
	
	public void addLine( String line, Color color )
	{
		if( bIniTextpane )
		{
			addText( "\n> "+line, color );
			msg_cnt++;
		}
		else
		{
		}
	}
	
	
	public void addError( String line )
	{
		//this.show();
		
		if( bIniTextpane )
		{
			addText( "\n> ERROR: "+line, new Color(255,0,0) );
			msg_cnt++;
		}
		else
		{
		}
	}	
	
	
	public void addText ( String text ){
		addTextEx( text, Color.BLACK, false );
	}
	
	
	public void addText ( String text, Color color )
	{
		try{
			addTextEx( text, color, false );
		}catch( Exception e){System.err.println("*ERROR: [Console::addText()]"+e.getMessage()); }
	}
	
	
	public void addTextEx ( String text, Color color, boolean underlined )
	{
		msg_cnt++;
		if( msg_cnt > 2000 ){
			msg_cnt = 0;
			clear();
		}
		
		try{
			// fetch styledocument from textpane
			StyledDocument doc = (StyledDocument)textArea.getDocument();
			
			// add style
			Style style = doc.addStyle( null, null);
			
			// set text as underlined
			if( underlined ) StyleConstants.setUnderline(style, true);
			
			// set text color
			StyleConstants.setForeground(style, color );
			
			// add string 
			doc.insertString( doc.getLength(), text, style);
			
			// scroll down
			textArea.setCaretPosition( textArea.getDocument().getLength() );
		
		}catch( Exception e){System.err.println("*ERROR: [Console::addTextEx()]"+e.getMessage());}
		
	}	
	
	public void clear(){
		try{
			// clear
			StyledDocument document = (StyledDocument)textArea.getDocument();
			document.remove( 0, document.getLength() );
		}catch( Exception e ){System.err.println("*ERROR [Console::Clear()]: "+e.getMessage());}
		
		addTextEx( "Console cleared", new Color(0,0,255), false );
	}
	
};
 

tfa

Top Contributor
Hier ein paar Sachen, die mir aufgefallen sind:

  • * Der Quelltext ist nicht dokumentiert und nur schlecht kommentiert.
    * Wozu die leeren else-Blöcke? Die sind überflüssig.
    * Du solltest eine Konstante für das Color-Objekt, das in addError verwendet wird anlegen. Dann wird nicht jedesmal ein neues Objekt erzeugt.
    * Nach 2000 Einträgen wird die Konsole gelöscht? Das ist ja fies! Was, wenn ich genau den 1999. sehen will? Du solltest nur die ältesten Einträge löschen, wenn es zu viel wird.
    * Java-Coding-Conventions sind verletzt (Unterstrich in msg_cnt). Das b vor bIniTextPane soll wohl Ungarische Notation sein. Sowas ist im Allgemeinen auch nicht gern gesehen. Wozu überhaupt diese Variable?
    * Das Exception-Handling ist etwas unglücklich. catch(Exception) sollte man vermeiden, statt dessen nur konrete Exeption auffangen und verarbeiten. Die Exception-Behandlung in der mittleren addText-Methode ist überflüssig.
 
G

Guest

Gast
msg_cnt wird zu oft inkrementiert.
Ansonsten, was ist, wenn man nach dem 1999sten Eintrag mehr als eine Fehlermeldung ausgibt? Nur die letzte
kriegt man zu sehen, der Rest wird einfach verworfen. Verwende lieger eine vernünftigen Logger und einen
LogViewer, statt das Rad neu zu erfinden.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
I Wie populär ist Design by Contract in Java und was haltet ihr davon? Allgemeine Java-Themen 5
D Was haltet ihr von Java 1.6 Allgemeine Java-Themen 46
A Was haltet ihr von einer standardisierten Main Klasse? Allgemeine Java-Themen 4
Y Wie kann ich ein erstelltes JPanel meinem Frame hinzufügen? Allgemeine Java-Themen 1
Drachenbauer Wie stelle ich fest, ob ein Objekt in meinem Array vorkommt? Allgemeine Java-Themen 5
Drachenbauer Wie finde ich den Aufrufer zu einer Methode, die sich nicht in meinem Projekt befindet? Allgemeine Java-Themen 2
X Größten Werte in meinem Array löschen? Allgemeine Java-Themen 16
S Wie kann ich eine kleine Stelle in meinem Code mit multiplen Threads abarbeiten..? Allgemeine Java-Themen 20
A Frage zu meinem Code Allgemeine Java-Themen 2
S Probleme mit meinem MacBook Pro DRINGEND HILFE erbeten! Allgemeine Java-Themen 17
D Schönheitsfehler in meinem Stapelverarbeitungsprogramm Allgemeine Java-Themen 13
X Probleme mit meinem Properties Allgemeine Java-Themen 9
hdi Was frisst in meinem Programm den Speicher / verschlechtert die Performance Allgemeine Java-Themen 11
Developer_X Brauche Hilfe bei meinem kleinen hilfsprogramm Allgemeine Java-Themen 4
Airwolf89 Wo ist der Fehler in meinem Programm? Allgemeine Java-Themen 4
T File runterladen mit meinem Applet? Allgemeine Java-Themen 4
M JTable verändert Position auf meinem JPanel Allgemeine Java-Themen 3
S Welche Javaversion ist in meinem Linux? Allgemeine Java-Themen 2
G Suche Programm PDF Maker Programm zum einbinden in meinem Allgemeine Java-Themen 8
D close Problem bei meinem eigenen ToolTip Allgemeine Java-Themen 2
E verstehe fehler bei meinem (kleinen) programm nicht Allgemeine Java-Themen 5
V Jar Files Auf meinem Handy Allgemeine Java-Themen 7
J Verzeichnis aus meinem JAR auslesen und abspeichern. Allgemeine Java-Themen 2
T Screenshot ohne meinem Programm Allgemeine Java-Themen 5
G Probleme mit Klassenmethoden in meinem Programm. Allgemeine Java-Themen 12
W probleme mit meinem programm Allgemeine Java-Themen 2
G Wie komme ich an den Pfad zu meinem Programm? Allgemeine Java-Themen 2
S meine java laufschrift funzt auf meinem NB teilweise schrott Allgemeine Java-Themen 2
S Verwendet Programmiersprache aus Quellcode - Datei ermitteln Allgemeine Java-Themen 6
C Quellcode-Übersetzung englisch zu deutsch Allgemeine Java-Themen 9
D Suche Quellcode! Allgemeine Java-Themen 8
B Quellcode einer Java libary finden um zu copy & paste'n Allgemeine Java-Themen 5
G Quellcode wiederherstellen Allgemeine Java-Themen 28
B Quellcode lesen - Aussortieren Allgemeine Java-Themen 3
M Quellcode von Java-Methoden Allgemeine Java-Themen 9
U Swing Hilfe beim Quellcode für ein Codierungs-/Decodierungsprogramm Allgemeine Java-Themen 9
G Externer Quellcode Allgemeine Java-Themen 3
L Methoden "Schiffe versenken" Quellcode in Methoden umwandeln Allgemeine Java-Themen 6
T Android Webview Webpage Quellcode to string Allgemeine Java-Themen 0
B Quellcode für Zwischenprüfung Allgemeine Java-Themen 4
M Aus Javaprogramm .NET Quellcode kompileren Allgemeine Java-Themen 2
J XML Dokument Zeilenumbruch in den Quellcode einfügen Allgemeine Java-Themen 5
T ExceptionHandling mit bescheidenem Quellcode Allgemeine Java-Themen 14
I Methoden Quellcode auslesen (Refelction o.ä.) Allgemeine Java-Themen 5
H Zeilenumbruch in Quellcode Allgemeine Java-Themen 4
G Eingegeben Formeln in Quellcode einbetten?! Allgemeine Java-Themen 4
E Compiler-Fehler wie muss ich die entstandene Quellcode kompilieren?? Allgemeine Java-Themen 2
T Api in Quellcode laden Allgemeine Java-Themen 8
L Java Quellcode auf Windows 7 ausführen? Allgemeine Java-Themen 3
S jsr in Quellcode Allgemeine Java-Themen 4
M R250 Quellcode Allgemeine Java-Themen 2
J Quellcode aus .jar auslesen? Allgemeine Java-Themen 3
M JLapack Quellcode beifügen? Allgemeine Java-Themen 4
P Probleme mit wikipedia quellcode zur binären Suche Allgemeine Java-Themen 6
X Quellcode von nativen Funktionen Allgemeine Java-Themen 2
D Übersetzen von Quellcode Allgemeine Java-Themen 11
N Java Quellcode zu Syntaxbaum Allgemeine Java-Themen 3
M Wie in Eclipse Quellcode incl. Zeilennummern kopieren? Allgemeine Java-Themen 6
G SourceForge - Quellcode Allgemeine Java-Themen 15
V Quellcode auf "Güte" testen? Allgemeine Java-Themen 5
C Java Quellcode parsen Allgemeine Java-Themen 8
M Quellcode DriverManager Allgemeine Java-Themen 2
C Fehler im Quellcode. Suche in einem Baum Allgemeine Java-Themen 3
G Problem mit Quellcode, Eingabe wird nicht angezeigt --HELP-- Allgemeine Java-Themen 2
T Problem mit Quellcode Allgemeine Java-Themen 2
Lazybone Java Quellcode sichern Allgemeine Java-Themen 9
P Fehler im Quellcode Allgemeine Java-Themen 8
J Viel Text mit " im Quellcode abspeichern Allgemeine Java-Themen 7
R Copyright-Notiz am Anfang jeder Quellcode-Datei? Allgemeine Java-Themen 5
R Problem mit Quellcode Allgemeine Java-Themen 2
M Events im Quellcode auslösen Allgemeine Java-Themen 4
J Java Quellcode Aufbereitung für Dokumentation Allgemeine Java-Themen 11
padde479 Organisation von Quellcode Allgemeine Java-Themen 6
F Quellcode von Java ansehen Allgemeine Java-Themen 4
S In einem HTML Quellcode gewünschten Abschnitt in Datei Save Allgemeine Java-Themen 9
R Java Quellcode zu exe Datei unsw. Allgemeine Java-Themen 5
G Quellcode inkludieren Allgemeine Java-Themen 3
J Quellcode aus JAVA Programmen Allgemeine Java-Themen 4

Ähnliche Java Themen


Oben