menüeinträge im Java Menü auslagern

  • Themenstarter Themenstarter alex
  • Beginndatum Beginndatum
Status
Nicht offen für weitere Antworten.
A

alex

Gast
Hallo. Folgendes Problem: Ich habe ein Java menü auf meiner Website. Die Einträge soll ein User pflegen der keine Html bzw. Java-Kenntnisse hat. Meine Idee wäre die Einträge in eine seperate Txt Datei oder jss Datei auszulagern, so dass der user nur in der Datei die Einträge bearbeiten muss. Ich hab mir die Datei so vorgestellt:

Link 1, www.test.de
Link 2, www.koaahnung.de
Link 3, ................
..... , ................

usw.

Wer kann mir helfen?

:?: :?: :?:


Gruss

alex
 
du könntest diese in eine datei schreiben und auslesen lassen (problem der berechtigung mit applets)
oder aber zb in html die links mit variablen deklarieren (anzahl währe statisch) und dann an einer stelle die durch kommentare dem "administrator" anweisen und dann ihm mitteilen, dass er diese nur ändern muss und dann wieder speichern und hochladen.
 
Hallo,
habe ein Menü mit verschiedenen Menüpunkten. Wie bekomm ich es hin, wenn ich den Menüpunkt "menü17" anklicke, dass dann eine Text unten erscheint!?Soll das eine HTML seite sein oder ein TXT - Datei!? Ich danke für die Antwort!

Code:
import java.awt.*; 
import java.awt.event.*; 
import java.io.*;
import java.applet.*;
import javax.swing.*;


public class Main extends Frame implements ActionListener, WindowListener
{
  public static void main(String args[] )
  { 
     Main Fenster1 = new Main();
     Fenster1.setSize(400, 300);
     Fenster1.setLocation(250, 200);
     Fenster1.setTitle("<<<<Hilfe Menü>>>>");
     Fenster1.show();
     JLabel l = new JLabel("Standard-Label");
   }

public Main()
  {
     MenuBar hauptMenue = new MenuBar();
     Menu menue1 = new Menu("Einführung");
     Menu menue2 = new Menu("Programmbedienung");
     Menu menue3 = new Menu("Installation");
     Menu menue4 = new Menu("Suchen");
   
     menue1.addSeparator();
  
     menue2.add("menü17");
     menue2.add("Menu16");
     menue2.add("menü15");
  
     menue3.add("menü14");
     menue3.add("menü13");
     menue3.add("menu12
     
     menue4.add("Suchen");
     menue4.add("beenden");
            
     hauptMenue.add(menue1); 
     hauptMenue.add(menue2);
     hauptMenue.add(menue3);
     hauptMenue.setHelpMenu(menue4);
     setMenuBar(hauptMenue);
     menue1.addActionListener(this);
     addWindowListener(this);
   }

    public void actionPerformed(ActionEvent evt)
  {
     if (evt.getSource() instanceof MenuItem) 
    { 
       String menuAdd = evt.getActionCommand(); 
       if (menuAdd == "beenden") System.exit(0);
     }
   }

  public void windowClosing(WindowEvent evt) 
  { 
     System.exit(0); 
   }

  public void windowOpened(WindowEvent evt){}
  public void windowIconified(WindowEvent evt){}
  public void windowDeiconified(WindowEvent evt){}
  public void windowClosed(WindowEvent evt){}
  public void windowActivated(WindowEvent evt){}
  public void windowDeactivated(WindowEvent evt){}
  
  

     
}
 
Du schreibst ein AWT-Programm. Im AWT gibts zur Anzeige von mehrzeiligem Text die java.awt.TextArea.
Diese fügst du einem Panel hinzu, legst die Größe mit einem LayoutManager fest und liest den Text dort hinein ein.

Und zur Sache die mal vor ein paar Jahren von NoBody geschrieben wurde:
Alles Unsinn, dafür gibts schließlich die param-Attribute des Applet-Tags, mit denen das Applet mit der Webseite auf statischem Wege "kommunizieren" kann.
 
könntest du mir das mal aufschreiben?
Bin neu und versuche zu lernen!
Nur irgendwie bin ich bis zum Menü gekommen, aber wie ich da einen Text, der extern liegt, bekomme ich nicht hin!!
Also wenn ich z.B auf "menü17" Klicke da soll darunter halt die txt datei erscheinen.
Kannst mir den Code dazu aufschreiben, da kann ich besser auch mit lernen.
ich danke dir im voraus schon einmal!
 
Soll der Text im gleichen Fenster angezeigt werden, oder ein einem anderen?
Liegt die Datei, die ausgelesen werden soll immer an der gleichen Stelle, oder ändert sich der Ort, so dass man einen Dialog zur Dateiauswahl bzw. zur Suche zwischenschalten muss?
Welches Format (Dateiendung) hat die Textdatei?
 
Ja, der txt soll genau unter dem menü erscheinen.
die datei liegt immer an der selben stelle.
es ist entweder eine txt-datei oder eine html datei (egal)..wie es besser ist!
Wäre schön, wenn du mir das in mein menü integrieren könntest!
Schonmal vielen danK!
 
Ich habe mal deinen Code verbessert und so umgeschrieben, dass es funktioniert und du es (hoffentlich) nachvollziehen kannst.
In der zweiten Klasse ist ein "Textdatei-Leser" implementiert, der beliebige Textdateien auslesen kann. Dieser Klasse übergibst du den Dateinamen deiner Textdatei, die sich in meinem Beispiel im Programmverzeichnis befinden muss.

Code:
import java.awt.*;
import java.awt.event.*;

public class Main extends Frame implements ActionListener
{
  private Menu einfuehrung, bedienung, installation, suchen;
  private MenuItem bedienung_hilfe, suchen_beenden;
  private TextArea text;
  private TextdateiLeser leser;
  
  public static void main(String args[] )
  {
     new Main("<<<<Hilfe Menü>>>>").setVisible(true);
  }

  public Main(String titel)
  {
    super(titel);
    setSize(600, 400);
    setLocationRelativeTo(null);
    
    addWindowListener(new WindowAdapter() {
      public void windowClosing(WindowEvent evt)
      {
        System.exit(0);
      }
    });
    
    //Menüleiste
    MenuBar menueleiste = new MenuBar();

    //Menüs
    einfuehrung = new Menu("Einführung");
    menueleiste.add(einfuehrung);

    bedienung = new Menu("Programmbedienung");
    menueleiste.add(bedienung);

    installation = new Menu("Installation");
    menueleiste.add(installation);
    
    suchen = new Menu("Suchen");
    menueleiste.add(suchen);

    //Menüeinträge
    bedienung_hilfe = new MenuItem("Hilfe anzeigen");
    bedienung_hilfe.addActionListener(this);
    bedienung.add(bedienung_hilfe);

    suchen_beenden = new MenuItem("Beenden");
    suchen_beenden.addActionListener(this);
    suchen.add(suchen_beenden);

    setMenuBar(menueleiste);
  }

  public void actionPerformed(ActionEvent evt)
  {
    Object quelle = evt.getSource();
    if (quelle == suchen_beenden)
    {
      System.exit(0);
    }
    else if(quelle == bedienung_hilfe)
    {
      hilfeAnzeigen();
    }
  }
  
  private void hilfeAnzeigen() {
    leser = new TextdateiLeser("liesmich.txt");
    String inhalt = leser.holeInhalt();
    text = new TextArea(inhalt);
    add(text, BorderLayout.CENTER);
    validate();
  }
}

Code:
import java.io.*;

public class TextdateiLeser {
  private BufferedReader leser;
  
   public TextdateiLeser(String dateiname) {
      try {
         leser = new BufferedReader(new FileReader(dateiname));
      }
      catch(FileNotFoundException fnfe) {
         System.out.println("Datei nicht gefunden!");
      }
   }
   
   public String holeInhalt() {
      StringBuffer puffer = new StringBuffer();

      String text = null;
      try {
         while((text = leser.readLine()) != null) {
            puffer.append(text).append("\n");
         }
      }
      catch(Exception e) {
         return "Fehler beim Lesen der Datei!";
      }
      
      return puffer.toString();
   }
}
 
ich danke dir!
ich mach mich dann mal an die arbeit!
wenn ich fragen habe , darf ich mich melden und hoffe wieder auf so eine erfolgreiche antwort! 🙂!
 
Wozu glaubst du wohl, mag dieses Forum dienen? :roll: :wink:

Edit by Illuvatar: Ein im ANschluss geposteter, unglaublich sinnvoller Beitrag von licht400 mit dem Inhalt "as" wurde gelöscht...
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben