kleinichkeiten

Status
Nicht offen für weitere Antworten.
M

michi2

Gast
Mein Programm ist viel zu langsam beim suchen nach dem Übeltäter (Profiler) bin ich auf volgende Zeilen gekommen
Code:
-setIconImage(new javax.swing.ImageIcon(getClass().getResource("/Michi's Editor.gif")).getImage());

-fontNames = GraphicsEnvironment.getLocalGraphicsEnvironment().getAvailableFontFamilyNames();
und das hantieren mit JComboBox (initation, setSelectedItem() und add())

Was giebts das für verbesserungs vorschläge???
 
B

Beni

Gast
Die Methoden nicht so oft aufrufen. So ein Image/Icon kann man auch in einer Variablen speichern, und muss es nicht jedesmal neu laden :wink:

Sonst würde mehr Code helfen, wo du Schleifen hast etc. wäre sehr interessant :wink:
 
M

michi2

Gast
das mit dem Icon mach ich eh nur an einer stelle, trotzdem braucht die heftig viel Zeit.
Bist du dir sicher das du den Kompletten Code wilst?(>3700Zeilen)
Ich geb dir mall ein Paar schnipsel:
Code:
     m_fonts = new JComboBox();
     
     String[] fontNames;
   fontNames = GraphicsEnvironment.
                getLocalGraphicsEnvironment().
                getAvailableFontFamilyNames();

   for(short i = 0; i < fontNames.length; i++)
      m_fonts.addItem(fontNames[i]);
Code:
    final class CMeinWindowAdapter extends WindowAdapter
        {
       public void windowClosing(WindowEvent e)
	   {
	   int antwort1;
	   String text1 = m_textanzeige.getText();
	   if(text1.equals("") || text1.equals(m_Über) || text1.equals(m_Hilfe))
		{
		  System.exit(0);
		}
	   else
		{
		antwort1 = JOptionPane.showConfirmDialog(null, "Soll das aktuelle Dokument 
vor dem Schließen von Michi's Editor gespeichert werden?");
		if(antwort1 == JOptionPane.YES_OPTION)
		  {
		  dateiSpeichern();		  System.exit(0);
		  }
		if(antwort1 == JOptionPane.NO_OPTION)
		  System.exit(0);
		if(antwort1 == JOptionPane.CANCEL_OPTION)
		  {}
		}
	   }
        }
Code:
   void dateiSpeichernHTML()	//Nach HTML exportiren
    {
     // lokale Variablen
     int zeichen,i;
     StringBuffer m_aktText2 = new StringBuffer();
     String suchstring2 = "\n";
     int new_Index;
     int old_Index = 0;
     boolean j = true;

  
    Color c1 = m_textanzeige.getForeground();
    Color c2 = m_textanzeige.getBackground();
    String fg = "";
    String bg = "";

        if(c1.equals(Color.black))
	fg = "black";    	
        if(c1.equals(Color.blue))
	fg = "blue";      	
        if(c1.equals(Color.red))
	fg = "red";      	
        if(c1.equals(Color.green))
	fg = "green";      	
        if(c1.equals(Color.red))
	fg = "red";      	
        if(c1.equals(Color.yellow))
	fg = "yellow";      	
        if(c1.equals(Color.white))
	fg = "white";      	
        if(c1.equals(Color.cyan))
	fg = "aqua";      	
        if(c1.equals(Color.magenta))
	fg = "fuchsia";
   

        if(c2.equals(Color.black))
	bg = "black";    	
        if(c2.equals(Color.blue))
	bg = "blue";      	
        if(c2.equals(Color.red))
	bg = "red";      	
        if(c2.equals(Color.green))
	bg = "green";      	
        if(c2.equals(Color.red))
	bg = "red";      	
        if(c2.equals(Color.yellow))
	bg = "yellow";      	
        if(c2.equals(Color.white))
	bg = "white";      	
        if(c2.equals(Color.cyan))
	bg = "aqua";      	
        if(c2.equals(Color.magenta))
	bg = "fuchsia";


    String fontname = (String) m_fonts.getSelectedItem();
    String style = (String) m_styles.getSelectedItem();
    String fontsize = (String) m_groese.getSelectedItem();

     JFileChooser c = new JFileChooser();
     c.addChoosableFileFilter(new HtmlFilter());
     c.showSaveDialog(this);

    // Falls der Benutzer keine Datei ausgewählt hat, 
    // wird null zurückgegeben
    // Dann nichts weiter tun
     if(c.getSelectedFile() == null)
  	return;

     m_dateiname_Name = c.getSelectedFile().getName();
     m_dateiname_Path =    c.getSelectedFile().getPath().substring(0,
c.getSelectedFile().getPath().length() - m_dateiname_Name.length());
  
       try
       {
       // Den Text nun in der Datei speichern
       einausgabedatei = c.getSelectedFile();
       FileWriter ausgabe = new FileWriter(einausgabedatei);
 
       // den aktuellen Text ermitteln und speichern
      m_aktText2.append(m_textanzeige.getText());
     while(j)		//
-Tags einfügen
     {
     // nun suchen
     new_Index = m_aktText2.indexOf(suchstring2, old_Index);
  
     if(new_Index == -1)
  	{
	break;
  	}
    else
	{
	old_Index = new_Index + suchstring2.length() + 4;
	m_aktText2.insert(new_Index, "
");
	}
     }
       
      ausgabe.write("<!Doctype HTML PUBLIC \"-//W3C//DTD HTML 4.01 Frameset//EN\"\n
  \"http://www.w3.org/TR/html4/frameset.dtd\">\n<Html>\n <HEAD>\n  <Title>Title</Title>\n  <Style 
Type=\"text/css\">\n   <!--\n     Body\t{\n\tfont-family: " + fontname + ";\n\tfont-size: " + fontsize +
 "pt;\n\t color: " + fg + ";\n\tbackground-color: " + bg + ";\n\t}\n   -->\n  </Style>\n </HEAD>\n 
<Body>\n

\n");
      if(style.equals("fett"))
	ausgabe.write("[b]");
      if(style.equals("kursiv"))
	ausgabe.write("[i]");
      if(style.equals("fett & kursiv"))
	ausgabe.write("[b][i]");


       for(i = 0; i < m_aktText2.length(); i++)
  	{
 	zeichen = (int) m_aktText2.charAt(i);
  	ausgabe.write(zeichen);
  	}

      if(style.equals("fett"))
	ausgabe.write("[/b]");
      if(style.equals("kursiv"))
	ausgabe.write("[/i]");
      if(style.equals("fett & kursiv"))
	ausgabe.write("[/b][/i]");
  
      ausgabe.write("</p>\n </Body>\n</Html>");

         m_dateiname_gueltig = true;
        // Datei schließen
        ausgabe.close();
       }
 
     catch(IOException e)
       {
       //  irgendwas ist schiefgegangen
       System.out.println("Fehler beim Schreiben der Datei  " + m_dateiname_Name 
                          + "\n");
       einausgabedatei = null;
       }
  
     } // Ende von 'dateiSpeichernHTML'

[Edit by Beni: Nicht mehr als 80 Zeichen/Zeile!]
 
B

Beni

Gast
Konsequentes Einrücken wäre was :wink:

Die 3700 Zeilen würde ich mir gerne ersparren. Aber wenn du diese Dinger nur einmal ausführst, bezweifle ich, dass das Problem dort ist. Du hast diese Langsamkeit doch die Ganze Zeit? Dann solltest du dir die Schleifen mal genauer anschauen, meist finden sich dort die Flaschenhälse.
 
M

michi2

Gast
Haupt sächlich beim Start. Den Source gibt unter 'http://people.freenet.de/m.schoenitzer/Michis_Editor/Michis_Editor.java'
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Oben