einfacher Texteditor in Java AWT

  • einfacher Texteditor in Java AWT

    Tag Community,

    [Poblembeschreibung]
    In meinem Textarea kann ich weder Schriftgröße, noch Schriftart ändern, nru leider ist mir schleierhaft wieso

    [Hilferuf]
    Ich benötige die Hilfe wieso waur oder woran es liegen könnte.

    [Dankesruf]
    Ich danke schonmal im vorraus.

    [Programmdatein]

    Quellcode

    1. /**
    2. *
    3. */
    4. package NotepadClone;
    5. import java.awt.CheckboxMenuItem;
    6. import java.awt.Menu;
    7. import java.awt.MenuBar;
    8. import java.awt.MenuItem;
    9. /**
    10. * @author Tisch2-PC1
    11. *
    12. */
    13. public class MainMenu extends MenuBar {
    14. /**
    15. *
    16. */
    17. private static final long serialVersionUID = 7132588145440786814L;
    18. private MenuItem miRueck;
    19. private CheckboxMenuItem miFarbe;
    20. private Gui gui;
    21. private Listener listener;
    22. MainMenu(Gui nGui){
    23. this.gui=nGui;
    24. this.listener=new Listener(gui);
    25. //Datei
    26. Menu datei=new Menu("Datei");
    27. MenuItem dateiNeu=new MenuItem("Neu");
    28. dateiNeu.setActionCommand("dateiNeu");
    29. MenuItem dateiLaden=new MenuItem("Laden");
    30. dateiLaden.setActionCommand("dateiLaden");
    31. MenuItem dateiSpeichern=new MenuItem("Speichern");
    32. dateiSpeichern.setActionCommand("dateiSpeichern");
    33. MenuItem dateiBeenden=new MenuItem("Beenden");
    34. dateiBeenden.setActionCommand("dateiBeenden");
    35. datei.add(dateiNeu);
    36. datei.add(dateiLaden);
    37. datei.add(dateiSpeichern);
    38. datei.addSeparator();
    39. datei.add(dateiBeenden);
    40. add(datei);
    41. //Bearbeiten
    42. Menu bearbeiten=new Menu("Bearbeiten");
    43. MenuItem bearbeitenRückgängig=new MenuItem("Rückgängig");
    44. bearbeitenRückgängig.setActionCommand("bearbeitenRückgängig");
    45. miRueck=bearbeitenRückgängig;
    46. MenuItem bearbeitenAusschneiden=new MenuItem("Ausschneiden");
    47. bearbeitenAusschneiden.setActionCommand("bearbeitenAusschneiden");
    48. MenuItem bearbeitenKopieren=new MenuItem("Kopieren");
    49. bearbeitenKopieren.setActionCommand("bearbeitenKopieren");
    50. MenuItem bearbeitenEinfügen=new MenuItem("Einfügen");
    51. bearbeitenEinfügen.setActionCommand("bearbeitenEinfügen");
    52. MenuItem bearbeitenLöschen=new MenuItem("Löschen");
    53. bearbeitenLöschen.setActionCommand("bearbeitenLöschen");
    54. bearbeiten.add(bearbeitenRückgängig);;
    55. bearbeiten.addSeparator();
    56. bearbeiten.add(bearbeitenAusschneiden);
    57. bearbeiten.add(bearbeitenKopieren);
    58. bearbeiten.add(bearbeitenEinfügen);
    59. bearbeiten.add(bearbeitenLöschen);
    60. add(bearbeiten);
    61. //Optionen
    62. Menu optionen=new Menu("Optionen");
    63. MenuItem optionenEinstellungen=new MenuItem("Einstellungen");
    64. optionenEinstellungen.setActionCommand("optionenEinstellungen");
    65. //Untermenüstart - Schrfitarten
    66. Menu optionenSchrift=new Menu("Schriftarten");
    67. MenuItem optionenSchriftArial=new MenuItem("Arial");
    68. optionenSchriftArial.setActionCommand("optionenSchriftArial");
    69. MenuItem optionenSchriftTimesNewRoman=new MenuItem("Times New Roman");
    70. optionenSchriftTimesNewRoman.setActionCommand("optionenSchriftTimesNewRoman");
    71. MenuItem optionenSchriftCourirNew=new MenuItem("Courir New");
    72. optionenSchriftCourirNew.setActionCommand("optionenSchriftCourirNew");
    73. MenuItem optionenSchriftSystem=new MenuItem("System");
    74. optionenSchriftSystem.setActionCommand("optionenSchriftSystem");
    75. //Untermenüende
    76. CheckboxMenuItem optionenFarbe=new CheckboxMenuItem("Farbe");
    77. optionenFarbe.setActionCommand("optionenFarbe");
    78. miFarbe=optionenFarbe;
    79. optionen.add(optionenEinstellungen);
    80. //Untermenüstart - Schrfitarten
    81. optionenSchrift.add(optionenSchriftArial);
    82. optionenSchrift.add(optionenSchriftTimesNewRoman);
    83. optionenSchrift.add(optionenSchriftCourirNew);
    84. optionenSchrift.add(optionenSchriftSystem);
    85. //Untermenüende
    86. optionen.add(optionenSchrift);
    87. optionen.add(optionenFarbe);
    88. add(optionen);
    89. //Startkonfiguration
    90. enableRueckgaengig(false);
    91. setFarbe(true);
    92. //ActionCommands
    93. datei.addActionListener(listener);
    94. bearbeiten.addActionListener(listener);
    95. optionen.addActionListener(listener);
    96. optionenSchrift.addActionListener(listener);
    97. }
    98. /**
    99. * 13.03.2010 - 16:48:28
    100. * Projekt: Java
    101. * @author Tisch2-PC1
    102. * @return void
    103. * @param
    104. */
    105. private void setFarbe(boolean b) {
    106. miFarbe.setState(b);
    107. }
    108. /**
    109. * 13.03.2010 - 16:47:13
    110. * Projekt: Java
    111. * @author Tisch2-PC1
    112. * @return void
    113. * @param
    114. */
    115. private void enableRueckgaengig(boolean b) {
    116. miRueck.setEnabled(b);
    117. }
    118. }
    Alles anzeigen

    Quellcode

    1. /**
    2. *
    3. */
    4. package NotepadClone;
    5. import java.awt.Color;
    6. import java.awt.Frame;
    7. import java.awt.Label;
    8. import java.awt.Toolkit;
    9. import java.awt.datatransfer.StringSelection;
    10. import java.awt.event.ActionEvent;
    11. import java.awt.event.ActionListener;
    12. import java.awt.event.WindowAdapter;
    13. import java.awt.event.WindowEvent;
    14. /**
    15. * @author Tisch2-PC1
    16. *
    17. */
    18. public class Listener implements ActionListener {
    19. private Gui gui;
    20. Listener(Gui nGui){
    21. this.gui=nGui;
    22. }
    23. public static String s;
    24. /* (non-Javadoc)
    25. * @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)
    26. */
    27. @Override
    28. public void actionPerformed(ActionEvent e) {
    29. s=e.getActionCommand();
    30. System.out.println(s);
    31. if(s=="dateiBeenden")
    32. System.exit(0);
    33. if(s=="dateiNeu"){
    34. Gui gui=new Gui("Texteditor");
    35. gui.setVisible(true);
    36. }
    37. if(s=="dateiLaden")
    38. notImplement("Datei laden");
    39. if(s=="dateiSpeichern")
    40. notImplement("Datei speichern");
    41. if(s=="bearbeitenRückgängig")
    42. notImplement("Bearbeiten Rückgängig");
    43. if(s=="bearbeitenAusschneiden")
    44. notImplement("Bearbeiten Ausschneiden");
    45. if(s=="bearbeitenKopieren"){
    46. this.inZwischenablageKopieren(this.gui.txt.getSelectedText());
    47. System.out.println("Select: "+this.gui.getSelectTxt());
    48. System.out.println("All: "+this.gui.getTxt());
    49. System.out.println("Start: "+this.gui.txt.getSelectionStart());
    50. System.out.println("End: "+this.gui.txt.getSelectionEnd());
    51. System.out.println("");
    52. }
    53. if(s=="bearbeitenEinfügen"){
    54. notImplement("bearbeiten Einfügen");
    55. }
    56. if(s=="bearbeitenLöschen")
    57. notImplement("Bearbeiten Löschen");
    58. if(s=="optionenEinstellungen")
    59. notImplement("Optionen Einstellungen");
    60. if(s=="optionenSchriftArial"){
    61. this.gui.setFontTxt("arial");
    62. }
    63. if(s=="optionenSchriftTimesNewRoman"){
    64. this.gui.setFontTxt("timesNewRoman");
    65. }
    66. if(s=="optionenSchriftCourirNew"){
    67. this.gui.setFontTxt("courirNew");
    68. }
    69. if(s=="optionenSchriftSystem"){
    70. this.gui.setFontTxt("system");
    71. }
    72. if(s=="optionenFarbe")
    73. notImplement("Optionen Farbe");
    74. }
    75. /**
    76. *
    77. * 15.03.2010 - 11:29:19
    78. * Projekt: Java
    79. * @author Tisch2-PC1
    80. * @return void
    81. * @param
    82. */
    83. public void inZwischenablageKopieren(String s) {
    84. Toolkit.getDefaultToolkit().getSystemClipboard().setContents(
    85. new StringSelection(s), null
    86. );
    87. }
    88. /**
    89. * 13.03.2010 - 17:29:14
    90. * Projekt: Java
    91. * @author Tisch2-PC1
    92. * @return void
    93. * @param
    94. */
    95. private void notImplement(String string) {
    96. System.out.println("\t\tnotImplement-Funktion aufgerufen");
    97. Frame fr=new Frame("Fehler");
    98. Label txt=new Label("Die Funktion <<"+string+">> wurde noch nicht implementiert");
    99. fr.add(txt);
    100. txt.setAlignment(1);
    101. fr.setBackground(Color.red);
    102. fr.pack();
    103. fr.setVisible(true);
    104. fr.addWindowListener(new WindowAdapter () {
    105. public void windowClosing (WindowEvent e) {
    106. Frame f=new Frame();
    107. f=(Frame) e.getSource();
    108. f.setVisible(false);
    109. }
    110. });
    111. }
    112. }
    Alles anzeigen

    Quellcode

    1. /**
    2. *
    3. */
    4. package NotepadClone;
    5. import java.awt.Font;
    6. import java.awt.Frame;
    7. import java.awt.TextArea;
    8. import java.awt.event.WindowAdapter;
    9. import java.awt.event.WindowEvent;
    10. /**
    11. * @author Tisch2-PC1
    12. *
    13. */
    14. public class Gui extends Frame {
    15. /**
    16. *
    17. */
    18. private static final long serialVersionUID = -7837972083571932483L;
    19. Font arial= new Font("Helvetika",Font.PLAIN,12);
    20. Font courirNew=new Font("Courir",Font.PLAIN,8);
    21. Font timesNewRoman=new Font("Times New Roman",Font.PLAIN,12);
    22. Font system=new Font("System",Font.PLAIN,12);
    23. protected TextArea txt=new TextArea();
    24. Gui(String name){
    25. super.setTitle(name);
    26. setMenuBar(new MainMenu(this));
    27. TextArea txt=new TextArea();
    28. txt.setSize(300, 100);
    29. this.add(txt);
    30. this.pack();
    31. this.addWindowListener(new WindowAdapter () {
    32. public void windowClosing (final WindowEvent e) {
    33. System.exit(0);
    34. }
    35. });
    36. }
    37. public String getTxt(){
    38. String s="";
    39. s=txt.getText();
    40. return s;
    41. }
    42. public String getSelectTxt(){
    43. String s="";
    44. s=txt.getSelectedText();
    45. return s;
    46. }
    47. protected void setFontTxt(String s){
    48. if(s=="arial")
    49. this.txt.setFont(arial);
    50. else if(s=="timesNewRoman")
    51. this.txt.setFont(timesNewRoman);
    52. else if(s=="courirNew"){
    53. this.txt.setFont(courirNew);
    54. System.out.println(this.txt.getFont());
    55. }
    56. else if(s=="system")
    57. this.txt.setFont(system);
    58. else
    59. System.out.println("Fault");
    60. }
    61. }
    Alles anzeigen
    Rechtschreibfehler sind ein Gimmick meiner TAstatur
  • Hallo,
    der Fehler ist, dass Du die TextArea in Deinem Gui-Konstruktor ein zweites mal deklarierst.

    Quellcode

    1. .
    2. .
    3. protected TextArea txt=new TextArea();
    4. Gui(String name){
    5. super.setTitle(name);
    6. setMenuBar(new MainMenu(this));
    7. TextArea txt=new TextArea(); // Hier überschreibst du Deine Textarea wieder !!
    8. txt.setSize(300, 100);
    9. this.add(txt);
    10. this.pack();
    11. this.addWindowListener(new WindowAdapter () {
    12. public void windowClosing (final WindowEvent e) {
    13. System.exit(0);
    14. }
    15. });
    16. }
    17. .
    18. .
    Alles anzeigen


    Ausserdem musst Du auf die korrekte Bezeichnung deiner Schriften achten:
    Helvetica statt Helvetika und
    Courier statt Courir,
    wird zwar nicht als Fehler moniert, aber Du hast nicht die Schrift, die Du eigentlich wolltest.
    Hoffe das löst Dein Problem.
    Gruss und viel Erfolg :)