JFileChooser

Status
Nicht offen für weitere Antworten.

siroFranz

Bekanntes Mitglied
Hallo,

bei mir will sich der FileChooser einfach nicht öffnen, hab schon alles ausprobiert (wahrscheinlich zu müde) :D
Code:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class Image_Show extends JFrame
{
    JButton btnadd;
    JList imagelist;
    JLabel imagelabel;
    JFileChooser bildauswahl;
    
    public Image_Show()
    {
        this.setSize(500, 550);
        this.setTitle("Image_Show");
        this.setDefaultCloseOperation(EXIT_ON_CLOSE);
        Container behaelter = getContentPane();
        this.getContentPane().setLayout(null);
        
        this.btnadd = new JButton("add");
        this.imagelist = new JList();
        this.imagelabel = new JLabel();
        this.bildauswahl = new JFileChooser();
        
        behaelter.add(btnadd);
        behaelter.add(imagelist);
        behaelter.add(imagelabel);
        behaelter.add(bildauswahl);
        
        this.btnadd.setBounds(5, 10, 60, 25);
        this.imagelist.setBounds(5, 50, 200, 400);
        this.imagelabel.setBounds(250, 50, 230, 250);
        
        this.setVisible(true);
    }
    public void actionPerformed(ActionEvent e)
    {
        if(e.getSource() == btnadd)
        {
            int pfad = bildauswahl.showOpenDialog(this);
            if(pfad == JFileChooser.APPROVE_OPTION)
            {
            }
        }
    }
}
 

The_S

Top Contributor
Deine Klasse muss noch den ActionListener implementieren und anschließend brauchst du noch die Zeile

Code:
btnadd.addActionListener(this);

in deinem Konstruktor.
 

siroFranz

Bekanntes Mitglied
Bins nochma, wie mach ich das den jetzt, wenn das ausgwählte bild im label dargestellt werden soll ?
Gruß


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

public class Image_Show extends JFrame implements ActionListener
{
    int pfad;
    JButton btnadd = new JButton("add");
    JList imagelist = new JList();
    JLabel imagelabel = new JLabel();
    JFileChooser bildauswahl = new JFileChooser();
    
    public Image_Show()
    {
        this.setSize(500, 550);
        this.setTitle("Image_Show");
        this.setDefaultCloseOperation(EXIT_ON_CLOSE);
        Container behaelter = getContentPane();
        this.getContentPane().setLayout(null); 
        
        behaelter.add(btnadd);
        behaelter.add(imagelist);
        behaelter.add(imagelabel);
        behaelter.add(bildauswahl);
        
        this.btnadd.setBounds(5, 10, 60, 25);
        this.imagelist.setBounds(5, 50, 200, 400);
        this.imagelabel.setBounds(250, 50, 230, 250);
        
        btnadd.addActionListener(this);
        
        this.setVisible(true);
    }
    public void actionPerformed(ActionEvent e)
    {
        if(e.getSource() == btnadd)
        {
            this.pfad = bildauswahl.showOpenDialog(this);
        }
    }
}
 

The_S

Top Contributor
du holst dir mit JFileChooser#getSelectedFile den Pfad zum Bild und lädst es dann via JLabe#setIcon in dein JLabel. Evtl. brauchste danach noch n repaint und/oder validate.
 

siroFranz

Bekanntes Mitglied
So ähnlich oder ?
Versteh nicht ganz , warum da -Icon icon- steht ? "public void setIcon(Icon icon)"

Code:
imagelabel.setIcon(bildauswahl.getSelectedFile());

So vllt irgendwie ?

Code:
imagelabel.setIcon(paintIcon(CENTER_ALIGNMENT, graphics(), 230, 250),  bildauswahl.getSelectedFile());

krieg immer einen error weiß nicht mehr weiter.

Gruß
 

dieta

Top Contributor
Aller (leider auch nicht so) Guten dinge sind drei:
1. Du kannst nicht erwaerten, dass hier ständig ein Experten-Team sitzt, nur um deine Fragen zu beantworten. Da braucht man halt auch manchmal eben etwas Gedult.
2. da steht "Icon icon" im Methodenheader, weil dort ein Icon als parameter initialisiert wird, das den Namen "icon" bekommt. Dort könnte auch genau so gut "Icon bla" oder "Icon irgendwas" stehen.
3. Was für eine Exception/Was für einen Error bekommst du?
 

siroFranz

Bekanntes Mitglied
ja klar hab ja auch Geduld, möchte aber weiterkommen :D

Meldung ist:

connot resolve symbol = method graphics()
 

dieta

Top Contributor
Und der Code zu dieser Fehlermeldung?
Ich versuch's mal:
Du versuchst die Methode graphics() von irgendetwas aufzurufen, dieses etwas hat aber keine Methode graphics().
Kann es sein, dass du die Methode getGraphics() meinst?
 

siroFranz

Bekanntes Mitglied
public void setIcon(Icon icon) {in der api unter JLabel)

Die Methode möchte ich ja einbinden, die das Icon das beim JFileChooser ausgewählt wurde in dem JLabel anzeigt.
 

The_S

Top Contributor
Jordie hat gesagt.:

Net so ungeduldig! Bezahl mir nen festen Stundensatz, dann kannste auch erwarten dass de schnell von mir Hilfe bekommst. Ansonsten musste halt warten bis ich mal wieder online gehe oder sich jemand anderes deinen Thread durchliest :roll: .

Zu deinem Problem:

Code:
deinLabel.setIcon(new ImageIcon(filechooser.getSelectedFile());
 

siroFranz

Bekanntes Mitglied
logo kenn ich das API

hab den code eingefügt
Code:
imagelabel.setIcon(new ImageIcon(bildauswahl.getSelectedFile()));
aber krieg halt die Meldung wie genannt, korriegeiere "ImageIcon". So stand es in der Fehlermeldung .

Gruß
 

The_S

Top Contributor
Sry, ImageIcon benötigt einen String, kein File.

Code:
imagelabel.setIcon(new ImageIcon(bildauswahl.getSelectedFile().getAbsolutePath()));

Hast du ImageIcon importiert?
 

siroFranz

Bekanntes Mitglied
ja hab javax.swing importiert, läuft auch jetzt. :D
,aber wäre gut wenn du mir den code nochmal erklären könntest ?

Gruß
 

The_S

Top Contributor
Naja, steht eigentlich alles da ;).

Du hast ein JLabel (imageLabel) diesem kannst du ein Image mit der Methode setIcon zuweißen. Den Pfad zum Icon bekommst du mit bildauswahl.getSelectedPath(). Jetzt brauchst du natürlich noch eine Componente, die ein Image repräsentiert und dieses Anhand eines Pfades laden kann. Das ist ImageIcon. Und da ImageIcon wie gesagt nichts mit einem File anfangen kann, sondern einen String benötigt lässt du dir das File, dass du mit bildauswahl.getSelectedPath() bekommen hast durch die Methode getAbsolutePath() in einen String umwandeln, welcher den Pfad zum Bild enthält. Das wars eigentlich schon.

Jetzt klarer?
 

siroFranz

Bekanntes Mitglied
alles klar. Soweit bin ich nu , krieg aber dann den Pfad des Bildes bzw. Namen nicht in die JList. Hab in nem Buch gelesen, dass man das über Vektoren irgendwie machen muss ?

Gruß

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

public class Image_Show extends JFrame implements ActionListener
{
    int auswahl;
    String[] elemente          = {"mutter", "vater", "bruder", "schwester", "tante", "onkel", "oma", "opa"}; 
    JButton btnadd             = new JButton("add");
    JButton btndelete          = new JButton("delete");
    JButton btnforward         = new JButton("forward");
    JButton btnback            = new JButton("back");
    JList imagelist            = new JList(elemente);
    JLabel imagelabel          = new JLabel();
    JFileChooser bildauswahl   = new JFileChooser();
   
    public Image_Show()
    {
        this.setSize(500, 480);
        this.setTitle("Image_Show");
        this.setDefaultCloseOperation(EXIT_ON_CLOSE);
        Container behaelter = getContentPane();
        this.getContentPane().setLayout(null);
        this.getContentPane().setBackground(Color.WHITE);
        this.imagelist.setSelectionBackground(new java.awt.Color(238,233,191));
        this.imagelist.setBackground(new java.awt.Color(255,250,205));
        this.imagelist.setForeground(new java.awt.Color(139,121,94));
        this.imagelist.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);

        behaelter.add(this.btnadd);
        behaelter.add(this.imagelist);
        behaelter.add(this.imagelabel);
        behaelter.add(this.bildauswahl);
        behaelter.add(this.btndelete);
        behaelter.add(this.btnforward);
        behaelter.add(this.btnback);
       
        this.btnadd.setBounds(5, 10, 60, 25);
        this.imagelist.setBounds(5, 50, 200, 400);
        this.imagelabel.setBounds(250, 50, 230, 250);
        this.btndelete.setBounds(80, 10, 100, 25);
        this.btnback.setBounds(220, 425, 100, 25);
        this.btnforward.setBounds(330, 425, 100, 25);
       
        this.btnadd.addActionListener(this);
        this.btndelete.addActionListener(this);
        this.btnback.addActionListener(this);
        this.btnforward.addActionListener(this);
        
        this.setVisible(true);
    }
    public void actionPerformed(ActionEvent e)
    {
        if(e.getSource() == btnadd)
        {
            this.auswahl = this.bildauswahl.showOpenDialog(this);
            this.imagelabel.setIcon(new ImageIcon(this.bildauswahl.getSelectedFile().getAbsolutePath()));
        }
        if(e.getSource() == btndelete)
        {
          
        }
        if(e.getSource() == btnback)
        {

        }
        if(e.getSource() == btnforward)
        {
            
        }
    }
}
 

The_S

Top Contributor
deklariere zusätzlich noch ein DefaultListModel als Klassenvariable. Beim initialisieren der JList übergibst du dieses DefaultListModel der JList im Konstruktor. Anschließend kannst du über DefaultListModel#add Objekte hinzufügen.
 

siroFranz

Bekanntes Mitglied
ok habs . Also wenn man die Liste während der Laufzeit verändern möchte, braucht man den DefaultListModel immer und wenn die Liste statisch ist reicht das, wenn man die Elemente in einem String speichert oder?

Aber ich hab jetzt nur DefaultListModel deklariert und dann bei ..... new JList( "ein neues Objekt erzeugt) , {alles im Klassenbereich}.
und es ging, hab das jetzt nix in den Konstruktor geschrieben, muss das sein ?


Code:
 public int auswahl;
    public DefaultListModel list;
    public String[] elemente          = {"mutter", "vater", "bruder", "schwester", "tante", "onkel", "oma", "opa"}; 
    public JButton btnadd             = new JButton("add");
    public JButton btndelete          = new JButton("delete");
    public JButton btnforward         = new JButton("forward");
    public JButton btnback            = new JButton("back");
    public JList imagelist            = new JList(list = new DefaultListModel());
    public JLabel imagelabel          = new JLabel();
    public JFileChooser bildauswahl   = new JFileChooser();


Code:
 if(e.getSource() == btnadd)
        {
            this.auswahl = this.bildauswahl.showOpenDialog(this);
            this.imagelabel.setIcon(new ImageIcon(this.bildauswahl.getSelectedFile().getAbsolutePath()));
            list.addElement(this.bildauswahl.getSelectedFile());
        }


Gruß
 

siroFranz

Bekanntes Mitglied
der Konstruktor ist doch der, der den gleichen Namen hat wie die Klasse. Aber da hab ich jetzt nix reingeschrieben .
aber ist ja auch nicht so wichtig .
Jetzt muss das prog das Object welches eingefügt wird, selektieren.
Nur mit der Methode setSelectedIndex(1) läuft das nicht ganz.
 

The_S

Top Contributor
Andere Klassen haben auch einen Konstruktor und ich hab gemeint, du sollst das in den Konstruktor von deiner JList schreiben, was du getan hast ;) .

setSelectedIndex sollte es eigentlich machen. Wie viel Objekte hast du denn in der JList?
 

siroFranz

Bekanntes Mitglied
Das variiert ja, jenachdem wie viele Bilder reingeladen werden über den JFileChosser (wo du mir ja auch geholfen hast :D ). Am Besten wäre es wenn der immer das, welches reingeladen wird,selektiert und dann über den "next bzw. forward" Button ein Bild nach vorne/hinten springen kann und dieses dann anzeigt.
Bei Bedarf kann ich dir den Code auch nochma schicken. Ich versuch das nochma zu lösen.
Gruß
 

siroFranz

Bekanntes Mitglied
ja aufjeden Fall passiert da etwas, aber noch nicht das richitge.
Also hab das mal eingebaut , wenn ich dann 3Bilder reinlade und eins auswähle, (egal ob das erste oder zweite) springt der immer direkt zum dritten. Ja und beim dritten passiert dann gar nichts.
Bin ma eben in dem API unterwegs. Such mal nach ner Selektiermethode und sowas ähnlichem wie ner "next()-Methode", sowas hatten wir ma im Unterricht in ner selbstgebauten Gui.

Gruß
 

The_S

Top Contributor
Ja, das bewirkt mein Code auch, weil du wolltest, dass immer das zuletzt eingefügt gleich selektiert wird. Das macht natürlich keinen Sinn diesen Code in die stateChanged (oder wie auch immer die Methode vom ListSelectionListener heißt) zu schreiben. Dieser Code sollte nachdem ein Bild neu hinzugefügt wurde eingebaut werden. Für einen next und previouse Button kannst du die einfach

Code:
jlist.setSelectedIndex(jlist.getSelectedIndex + 1);

machen. Bzw. -1 für den Previouse - Button
 

siroFranz

Bekanntes Mitglied
So hab das mit dem forward Button jetzt auch hinbekommen.
Meine Frage ist nun ob das nicht einfacher geht und ob JList keine Methode anbietet um die Größe herauszufinden ?

Code:
int index = this.imagelist.getSelectedIndex();
            if((index == -1) || (list.getSize() == 1))
            {
                 Toolkit.getDefaultToolkit().beep();
            }
            if(index > -1)
            {
                 this.imagelist.setSelectedIndex(index+1);
            }
            if(index+1 == this.list.getSize())
            {
                this.imagelist.setSelectedIndex(0);
            }

Gruß
 

The_S

Top Contributor
? Warum größe Rausbekommen? Hab ich dir doch geschriebn :shock: ...
Code:
defaultlistmodel.getSize()
!? Und wie soll das überhaupt deinen Code vereinfachen? Geht net einfacher!
 

siroFranz

Bekanntes Mitglied
Das mit dem getSize() geht doch nur bei ner dynamischen Liste. Wie würde man das den machen, wenn man kein DefaultListModel drin hat.
Das mit dem wechseln haben wir ja nun, aber wie zeigt der dann immer das nächste bzw. letzte Bild an?

Gruß
 

The_S

Top Contributor
JList#getModel#getSize für die Größe. Um die Bilder anzuzeigen musst du in deinem ListSelectionListener abfragen welcher Eintrag selektiert wurde. Und jenachdem welcher Eintrag selektiert ist das dementsprechende Bild laden.
 

siroFranz

Bekanntes Mitglied
mal ganz kurz anderes Problem. Bin gerade dabei ein Menü einzubauen, aber der verschiebt das nach unten !
Kannste ja mal bei dir gucken. Hier ist der code !

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

public class Image_Show extends JFrame implements ActionListener
{
    public int auswahl;
    public DefaultListModel list;
    public JPanel panel               = new JPanel();
    public JMenuBar menueleiste       = new JMenuBar();
    public JButton btnadd             = new JButton("add");
    public JButton btndelete          = new JButton("delete");
    public JButton btndeleteAll       = new JButton("delete all");
    public JButton btnforward         = new JButton("forward");
    public JButton btnback            = new JButton("back");
    public JList imagelist            = new JList(list = new DefaultListModel());
    public JLabel imagelabel          = new JLabel();
    public JFileChooser bildauswahl   = new JFileChooser();
    public JLabel meldung             = new JLabel(new ImageIcon("pfeil.jpg"));
   
    public Image_Show()
    {
        this.setSize(500, 550);
        this.setTitle("Image_Show");
        this.setDefaultCloseOperation(EXIT_ON_CLOSE);
        Container behaelter = getContentPane();
        this.getContentPane().setLayout(null);
        this.getContentPane().setBackground(Color.WHITE);
        this.menueleiste.add(setMenue());
        this.setJMenuBar(menueleiste);
        this.imagelist.setSelectionBackground(new java.awt.Color(238,233,191));
        this.imagelist.setBackground(new java.awt.Color(255,250,205));
        this.imagelist.setForeground(new java.awt.Color(139,121,94));
        this.imagelist.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
        this.meldung.setHorizontalAlignment(this.meldung.LEFT);
        ImageIcon icon = new ImageIcon("example.png");
        this.imagelabel.setIcon(icon);
        this.meldung.setText("example");
        
        behaelter.add(this.menueleiste);
        behaelter.add(this.btnadd);
        behaelter.add(this.imagelist);
        behaelter.add(this.imagelabel);
        behaelter.add(this.bildauswahl);
        behaelter.add(this.btndelete);
        behaelter.add(this.btndeleteAll);
        behaelter.add(this.btnforward);
        behaelter.add(this.btnback);
        behaelter.add(this.meldung);
       
        this.btnadd.setBounds(5, 50, 60, 25);
        this.imagelist.setBounds(5, 90, 200, 400);
        this.imagelabel.setBounds(250, 90, 230, 250);
        this.btndelete.setBounds(80, 50, 100, 25);
        this.btndeleteAll.setBounds(195, 50, 100, 25);
        this.btnback.setBounds(220, 465, 100, 25);
        this.btnforward.setBounds(330, 465, 100, 25);
        this.meldung.setBounds(310, 50, 170, 25);

        this.btnadd.addActionListener(this);
        this.btndelete.addActionListener(this);
        this.btndeleteAll.addActionListener(this);
        this.btnback.addActionListener(this);
        this.btnforward.addActionListener(this);
        
        this.setVisible(true);       
    }
    public JMenu setMenue()
    {
        JMenu datei = new JMenu("Datei");
        return datei;
    }
    public static void main (String[] args)
    {
        new Image_Show();
    }
    public void actionPerformed(ActionEvent e)
    {
        if(e.getSource() == btnadd)
        {
            this.meldung.setText("");
            this.auswahl = this.bildauswahl.showOpenDialog(this);
            this.bildauswahl.setDialogTitle("Bilddatei öffnen");
            if(this.auswahl == this.bildauswahl.APPROVE_OPTION)
            {
                 this.imagelabel.setIcon(new ImageIcon(this.bildauswahl.getSelectedFile().getPath()));
                 this.list.addElement(this.bildauswahl.getSelectedFile().getName());
                 this.imagelist.setSelectedIndex(this.imagelist.getSelectedIndex()+1);  
                 this.meldung.setText("Vorgang erfolgreich");
            }
            if((this.auswahl == this.bildauswahl.CANCEL_OPTION) || (this.auswahl == this.bildauswahl.ERROR_OPTION))
            {
                this.meldung.setText("Kein Bild ausgewählt.");
            }
        }
        if(e.getSource() == btndelete)
        {
            this.meldung.setText("");
            int index = this.imagelist.getSelectedIndex();
            
            if(index == -1)
            {
                Toolkit.getDefaultToolkit().beep();
                this.meldung.setText("Keine Bilddatei vorhanden.");
            }
            else
            {
                this.list.removeElementAt(index);  
                this.imagelist.setSelectedIndex(index+1);
            }                    
        }
        if(e.getSource() == btndeleteAll)
        {
            this.meldung.setText("");
            
            if(this.imagelist.getSelectedIndex() == -1)
            {
                Toolkit.getDefaultToolkit().beep();
                this.meldung.setText("Keine Bilddatei vorhanden.");
            }
            if(this.imagelist.getSelectedIndex() == 0)
            {
                Toolkit.getDefaultToolkit().beep();
                this.meldung.setText("delete-Button benutzen.");
            }
            if(this.imagelist.getSelectedIndex() > 0)
            {
                this.list.removeAllElements();
                this.meldung.setText("Vorgang erfolgreich");
            }
        }
        if(e.getSource() == btnback)
        {
            int index = this.imagelist.getSelectedIndex();
            
            if((index == -1) || (list.getSize() == 1))
            {
                Toolkit.getDefaultToolkit().beep();
            }
            if(index > -1)
            {
                this.imagelist.setSelectedIndex(index-1);
            }
            if(index == 0)
            {
                this.imagelist.setSelectedIndex(this.list.getSize()-1);
            }            
        }
        if(e.getSource() == btnforward)
        {
            int index = this.imagelist.getSelectedIndex();
            
            if((index == -1) || (list.getSize() == 1))
            {
                 Toolkit.getDefaultToolkit().beep();
            }
            if(index > -1)
            {
                 this.imagelist.setSelectedIndex(index+1);
            }
            if(index+1 == this.list.getSize())
            {
                this.imagelist.setSelectedIndex(0);
            }
        }
    }
}
 

The_S

Top Contributor
Die Zeile

Code:
behaelter.add(this.menueleiste);

ist daran schuld. Mach die raus, ist sowieso unsinnig!
 

siroFranz

Bekanntes Mitglied
hab das mit dem fileReader() gemacht.
Also das Einlesen beim Öffnen und Speichern.
Den Dateinamen hab ich ja jetzt.
Aber wie mach ich das mit dem setFilter(), dass man nur "txt" oder "jpg" Dateien lesen kann ?
:D :D
 

André Uhres

Top Contributor
Code:
       chooser.setFileFilter(new javax.swing.filechooser.FileFilter() {
            public boolean accept(File f) {
                String name = f.getName().toLowerCase();
                if(name.endsWith(".txt") || name.endsWith(".jpg")){
                    return true;
                }
                return false;
            }
            public String getDescription() {
                return ".txt und .jpg Dateien";
            }
        });
 
G

Guest

Gast
So bin bei der Schriftart mittlerweile.


Code:
if(action==fett)
        {
            textfeld.setFont(new Font(schrift.getSelectedIndex(), Font.PLAIN, textfeld.getFont().getSize()));
        }

Das klappt leider nicht !

Gruß
 

siroFranz

Bekanntes Mitglied
Leider hab ich den Beitrag als Gast geschrieben und kann ihn nicht editieren. Problem ist schon gelöst !
So bin bei der Schriftart mittlerweile.

Man ja die Schriftart mit Font.BOLD, PLAIN, ITALIC einstellen, aber wie unterstreicht man den Text. und krieg bei dir JTextArea den ScrollPane nicht rein.
So poste einfach mal den ganzen code, anstatt da jetzt alles einzelnd rauszukopieren.
:lol: :lol:

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

public class Editor extends JFrame implements ActionListener
{
    JTextArea textfeld   = new JTextArea(300,200);
    JScrollPane pane     = new JScrollPane(textfeld);
    JPanel panel         = new JPanel();
    JMenuBar menubar     = new JMenuBar();
    JMenu data;
    JMenuItem open;
    JMenuItem save;
    JMenuItem saveAs;
    JMenuItem print;
    JMenuItem close;
    JMenuItem neu;
    JMenu edit;
    JMenuItem copy;
    JMenuItem paste;
    JMenuItem cut;
    JMenuItem mark;
    JMenu view;
    JMenuItem preview;
    JMenuItem zoomIn;
    JMenuItem zoomOut;
    JMenu ensertion;
    JMenuItem hyperlink;
    JMenuItem grafic;
    JMenu format;
    JMenu font;
    JMenuItem size;
    JMenuItem art;
    JMenu table;
    JMenuItem insertTable;
    JMenu insert;
    JMenu window;
    JMenuItem newWindow;
    JFileChooser oeffnen    = new JFileChooser();
    JFileChooser speichern  = new JFileChooser();
    String[ ] schriftart    = {"Arial", "Times New Roman", "Serif", "SansSerif", "Monospaced"};
    JComboBox schrift       = new JComboBox(schriftart);
    String[ ] schriftgroeße = {"8", "9", "10", "11", "12", "14", "16", "18", "20", "22", "24", "26"};
    JComboBox fontsize      = new JComboBox(schriftgroeße);
    JButton fett;
    JButton kursiv;
    JButton unterstrichen;
    JButton kopieren;
    JButton einfuegen;
    JButton ausschneiden;
    JButton speicher;
    JButton oeffne;
    JButton drucke;
    JButton newDocument;
    JButton verweiß;
    JButton tabelle;
    JToolBar toolBar;
    JToolBar toolBar2;
    Object action;
    File dateiName;
    
    public Editor()
    {
        //Fenster
        this.setSize(500, 500);
        this.setTitle("Editor");
        this.setDefaultCloseOperation(this.EXIT_ON_CLOSE);
        Container cp = getContentPane();       
        this.panel.setLayout(null);
        panel.add(pane);
        panel.add(textfeld);
        cp.add(panel);
        //panel.add(this.textfeld);
        this.textfeld.setTabSize(5);
        this.textfeld.setLineWrap(true);
        this.textfeld.setWrapStyleWord(true);
        this.textfeld.setBounds(0, 60, 500, 440);
        //Toolbar -und tipps
        this.setToolBar();    
        this.setTooltips();
        //Menü
        this.menubar.add(createBarEntryData());
        this.menubar.add(createBarEntryEdit());
        this.menubar.add(createBarEntryView());
        this.menubar.add(createBarEntryEnsertion());
        this.menubar.add(createBarEntryFormat());
        this.menubar.add(createBarEntryTable());
        this.menubar.add(createBarEntryWindow());
        setJMenuBar(this.menubar);
        
        this.setVisible(true);
    }
    public static void main (String[ ] args)
    {
        new Editor();
    }
    //Menü
    public JMenu createBarEntryData()
    {
        this.data   = new JMenu("Datei");
        this.neu    = new JMenuItem("Neu", new ImageIcon("neuesDokument.jpg"));
        this.open   = new JMenuItem("Öffnen", new ImageIcon("open.png"));
        this.save   = new JMenuItem("Speichern", new ImageIcon("speichern.jpg"));
        this.saveAs = new JMenuItem("Speichern unter...");
        this.print  = new JMenuItem("Drucken");
        this.close  = new JMenuItem("Beenden"); 
        this.data.add(this.neu);
        this.data.add(this.open);
        this.data.addSeparator();
        this.data.add(this.save);
        this.data.add(this.saveAs);
        this.data.addSeparator();
        this.data.add(this.print);
        this.data.addSeparator();
        this.data.add(this.close);
        this.neu.setAccelerator(KeyStroke.getKeyStroke('N', Event.ALT_MASK));
        this.open.setAccelerator(KeyStroke.getKeyStroke('O', Event.ALT_MASK));
        this.save.setAccelerator(KeyStroke.getKeyStroke('S', Event.ALT_MASK));
        this.print.setAccelerator(KeyStroke.getKeyStroke('D', Event.ALT_MASK));
        this.open.addActionListener(this);
        this.save.addActionListener(this);
        this.close.addActionListener(this);
        this.neu.addActionListener(this);
        this.saveAs.addActionListener(this);
        this.print.addActionListener(this);
        
        return this.data;
    }
    public JMenu createBarEntryEdit()
    {
        this.edit  = new JMenu("Bearbeiten");
        this.copy  = new JMenuItem("Kopieren", new ImageIcon("kopieren.jpg"));
        this.paste = new JMenuItem("Einfügen", new ImageIcon("einfuegen.jpg"));
        this.cut   = new JMenuItem("Ausschneiden", new ImageIcon("ausschneiden.jpg"));
        this.mark  = new JMenuItem("Alles markieren");
        this.edit.add(this.copy);
        this.edit.add(this.paste);
        this.edit.add(this.cut);
        this.edit.addSeparator();
        this.edit.add(this.mark);
        this.paste.setAccelerator(KeyStroke.getKeyStroke('E', Event.CTRL_MASK));
        this.copy.setAccelerator(KeyStroke.getKeyStroke('K', Event.CTRL_MASK));
        this.cut.setAccelerator(KeyStroke.getKeyStroke('A', Event.CTRL_MASK));
        this.mark.setAccelerator(KeyStroke.getKeyStroke('M', Event.CTRL_MASK));
        this.copy.addActionListener(this);
        this.paste.addActionListener(this);
        this.cut.addActionListener(this);
        this.mark.addActionListener(this);
        
        return this.edit;
    }
    public JMenu createBarEntryView()
    {
        this.view    = new JMenu("Ansicht");
        this.preview = new JMenuItem("Vorschau", new ImageIcon("vorschau.jpg"));
        this.zoomIn  = new JMenuItem("Zoom +");
        this.zoomOut = new JMenuItem("Zoom -");
        this.view.add(this.preview);
        this.view.addSeparator();
        this.view.add(this.zoomIn);
        this.view.add(this.zoomOut);
        this.preview.setAccelerator(KeyStroke.getKeyStroke('P', Event.CTRL_MASK));
        this.preview.addActionListener(this);
        this.zoomIn.addActionListener(this);
        this.zoomOut.addActionListener(this);
        
        return this.view;
    }
    public JMenu createBarEntryEnsertion()
    {
        this.ensertion = new JMenu("Einfügen");
        this.hyperlink = new JMenuItem("Hyperlink einfügen", new ImageIcon("hyperlink.jpg")); 
        this.grafic    = new JMenuItem("Grafik einfügen", new ImageIcon("grafik.jpg"));
        this.ensertion.add(this.grafic);
        this.ensertion.addSeparator();
        this.ensertion.add(this.hyperlink);
        this.hyperlink.setAccelerator(KeyStroke.getKeyStroke('V', Event.SHIFT_MASK));
        this.grafic.setAccelerator(KeyStroke.getKeyStroke('G', Event.SHIFT_MASK));
        this.grafic.addActionListener(this);
        
        return this.ensertion;
    }
    public JMenu createBarEntryFormat()
    {
        this.format = new JMenu("Format");
        this.font   = new JMenu("Schrift");
        this.size   = new JMenuItem("Schriftgröße", new ImageIcon("schriftart.jpg"));
        this.art    = new JMenuItem("Schriftart");
        this.format.add(this.font);
        this.font.add(this.size);
        this.font.add(this.art);
        this.font.addActionListener(this);
        this.size.addActionListener(this);
        
        return this.format;
    }
    public JMenu createBarEntryTable()
    {
        this.table       = new JMenu("Tabelle");
        this.insert      = new JMenu("Einfügen");
        this.insertTable = new JMenuItem("Tabelle", new ImageIcon("tabelle.jpg"));
        this.insert.add(this.insertTable);
        this.table.add(this.insert);
        this.insertTable.setAccelerator(KeyStroke.getKeyStroke('T', Event.SHIFT_MASK));
        this.insertTable.addActionListener(this);

        return this.table;
    }
    public JMenu createBarEntryWindow()
    {
        this.window   = new JMenu("Fenster");
        this.newWindow= new JMenuItem("neues Fenster", new ImageIcon("fenster.jpg"));
        this.window.add(this.newWindow);
        this.newWindow.setAccelerator(KeyStroke.getKeyStroke('F', Event.ALT_MASK));
        this.newWindow.addActionListener(this);
        
        return this.window;
    }
    //ToolBar
    public void setToolBar()
    {
        //erste Toolbar
        this.toolBar = new JToolBar();
        this.toolBar.add(this.newDocument    = new JButton(new ImageIcon("neuesDokument.jpg")));
        this.toolBar.add(this.oeffne         = new JButton(new ImageIcon("open.png")));
        this.toolBar.add(this.speicher       = new JButton(new ImageIcon("speichern.jpg")));
        this.toolBar.add(this.drucke         = new JButton(new ImageIcon("drucken.jpg")));
        this.toolBar.add(this.ausschneiden   = new JButton(new ImageIcon("ausschneiden.jpg")));
        this.toolBar.add(this.kopieren       = new JButton(new ImageIcon("kopieren.jpg")));
        this.toolBar.add(this.einfuegen      = new JButton(new ImageIcon("einfuegen.jpg")));
        this.toolBar.add(this.verweiß        = new JButton(new ImageIcon("hyperlink.jpg")));
        this.toolBar.add(this.tabelle        = new JButton(new ImageIcon("tabelle.jpg")));
        this.panel.add(this.toolBar);
        this.toolBar.setBounds(0 , 0, 500, 25);
        this.kopieren.addActionListener(this);
        this.ausschneiden.addActionListener(this);
        this.einfuegen.addActionListener(this);
        this.oeffne.addActionListener(this);
        this.speicher.addActionListener(this);
        this.newDocument.addActionListener(this);
        this.tabelle.addActionListener(this);
        this.verweiß.addActionListener(this);
        
        //Zweite Toolbar
        this.toolBar2 = new JToolBar();
        this.toolBar2.add(this.schrift);
        this.toolBar2.add(this.fontsize);
        this.toolBar2.add(this.fett          = new JButton(new ImageIcon("bold.jpg")));
        this.toolBar2.add(this.kursiv        = new JButton(new ImageIcon("kursiv.jpg")));
        this.toolBar2.add(this.unterstrichen = new JButton(new ImageIcon("unterstrichen.jpg")));
        this.panel.add(this.toolBar2);
        this.toolBar2.setBounds(175, 30, 300, 25);
        this.fett.addActionListener(this);
        this.kursiv.addActionListener(this);
        this.unterstrichen.addActionListener(this);
        this.schrift.addActionListener(this);
        this.fontsize.addActionListener(this);
    }
    //Tooltips
    public void setTooltips()
    {
        
        this.oeffne.setToolTipText("Öffnen");
        this.speicher.setToolTipText("Speichern");
        this.newDocument.setToolTipText("neues Dokument");
        this.drucke.setToolTipText("Drucken");
        this.ausschneiden.setToolTipText("Ausschneiden");
        this.kopieren.setToolTipText("Kopieren");
        this.einfuegen.setToolTipText("Einfügen");
        this.verweiß.setToolTipText("Hyperlink");
        this.tabelle.setToolTipText("Tabelle");
        this.fett.setToolTipText("Fett");
        this.kursiv.setToolTipText("Kursiv");
        this.unterstrichen.setToolTipText("Unterstrichen");
    }
    // Action- Events
    public void actionPerformed(ActionEvent e)
    {
        this.action = e.getSource();
        
        if((action==open) || (action==oeffne))
        {
            int chooser=oeffnen.showOpenDialog(this);
            byte zeichen;
            char buchstabe;
            String text="";
            try
            {
                dateiName = this.oeffnen.getSelectedFile();
                FileInputStream in = new FileInputStream(dateiName);
                do
                {
                    zeichen = (byte)in.read();
                    textfeld.setText(zeichen+" ");
                    text +=(char)zeichen;       
                }while(zeichen !=-1);
                in.close();
                textfeld.setText(text);
            }
            catch(Exception ex1)
            {
            }
        }
        if((action==save) || (action==speicher))
        {
            int chooser=speichern.showSaveDialog(this);
            dateiName=this.speichern.getSelectedFile();
            String text= textfeld.getText();
            try
            {
                FileOutputStream out = new FileOutputStream(dateiName);
                for(int i=0; i<=text.length(); i++)
                {
                    out.write((byte)text.charAt(i));
                }
                out.close();
            }
            catch(Exception ex2)
            {
            }
        }
        if((action==neu) || (action==newDocument))
        {
            textfeld.setText("");
        }
        if((action==this.copy) || (action==this.kopieren))
        {
            this.textfeld.copy();
        }
        if((action==this.paste) || (action==this.einfuegen))
        {
            this.textfeld.paste();
        }
        if((action==this.cut) || (action==this.ausschneiden))
        {
            this.textfeld.cut();
        }
        if(action==this.mark)
        {
            this.textfeld.selectAll();
        }
        if(action==this.close)
        {
            this.setVisible(false);
            System.exit(0);
        }
        if(action==this.print)
        {
            
        }
        if(action==this.hyperlink)
        {
            
        }
        if(action==newWindow)
        {
            new Editor();
        }
        if(action==this.size)
        {

        }
        if(action==fett)
        {
            int index = schrift.getSelectedIndex();
            String schrift = Integer.toString(index);
            textfeld.setFont(new Font(schrift, Font.BOLD, textfeld.getFont().getSize()));
        }
        if(action==kursiv)
        {
            int index = schrift.getSelectedIndex();
            String schrift = Integer.toString(index);
            textfeld.setFont(new Font(schrift, Font.ITALIC, textfeld.getFont().getSize()));
        }
        if(action==unterstrichen)
        {
            int index = schrift.getSelectedIndex();
            String schrift = Integer.toString(index);
            textfeld.setFont(new Font(schrift, Font.PLAIN, textfeld.getFont().getSize()));
        }
        if(action==schrift)
        {
            int index = schrift.getSelectedIndex();
            String schrift = Integer.toString(index);
            textfeld.setFont(new Font(schrift, Font.PLAIN, textfeld.getFont().getSize()));
        }
        if(action==fontsize)
        {
            Object schritt1 = this.fontsize.getSelectedItem();
            String schritt2 = String.valueOf(schritt1);
            int groeße      = Integer.parseInt(schritt2);
            
            Object art         = this.schrift.getSelectedItem();
            String schrift     = String.valueOf(art);
            textfeld.setFont(new Font(schrift, Font.PLAIN, groeße+5));
        }
        if(action==zoomIn)
        {
            int index = schrift.getSelectedIndex();
            String schrift = Integer.toString(index);
            textfeld.setFont(new Font(schrift, Font.PLAIN, textfeld.getFont().getSize()+5));
        }
        if(action==zoomOut)
        {
            int index = schrift.getSelectedIndex();
            String schrift = Integer.toString(index);
            textfeld.setFont(new Font(schrift, Font.PLAIN, textfeld.getFont().getSize()-5));
        }
    }
}

Gruß
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
Tommy135 JFileChooser ist sehr langsam AWT, Swing, JavaFX & SWT 13
T JFileChooser ist Englisch und bleibt Englisch und bleibt Englisch... AWT, Swing, JavaFX & SWT 15
M Swing jFileChooser Header viewTypeDetails setFont AWT, Swing, JavaFX & SWT 0
I JFileChooser mit System L&F bei anderem L&F der eigtl. Anwendung AWT, Swing, JavaFX & SWT 0
Meeresgott AWT JFileChooser bestimmte Ordner anzeigen AWT, Swing, JavaFX & SWT 16
S Swing JFileChooser best. Ordner wie Dateien behandeln AWT, Swing, JavaFX & SWT 4
H Swing JFileChooser für nicht existierendes Unterverzeichnis AWT, Swing, JavaFX & SWT 3
javampir Swing Anzeige der FileFilter im JFileChooser AWT, Swing, JavaFX & SWT 0
L JFileChooser Datentyp Unterscheidung AWT, Swing, JavaFX & SWT 6
K JFileChooser NullPointerException AWT, Swing, JavaFX & SWT 7
H JFileChooser Dateinamen vorgeben (Save Dialog) AWT, Swing, JavaFX & SWT 9
Neumi5694 Swing JFilechooser - Detailansicht AWT, Swing, JavaFX & SWT 0
M JFileChooser Look and Feel AWT, Swing, JavaFX & SWT 2
T JFileChooser Rahmenfarbe ändern AWT, Swing, JavaFX & SWT 1
K Pfad mit JFileChooser ausgeben lassen AWT, Swing, JavaFX & SWT 7
C JFileChooser hängt bei Ausführung mit Terminal AWT, Swing, JavaFX & SWT 2
T Swing JFileChooser und FileView AWT, Swing, JavaFX & SWT 4
M Einzelne Ordner im JFileChooser ausgrauen? AWT, Swing, JavaFX & SWT 4
H Swing JFileChooser inline editing AWT, Swing, JavaFX & SWT 4
D JFileChooser anpassen AWT, Swing, JavaFX & SWT 5
AssELAss Verzeichnis JFileChooser aktualisieren AWT, Swing, JavaFX & SWT 0
A JFileChooser Datei speichern AWT, Swing, JavaFX & SWT 4
A Datei weiterverwenden mit JFileChooser AWT, Swing, JavaFX & SWT 6
T Importer-Auswahl im JFileChooser AWT, Swing, JavaFX & SWT 3
N JFileChooser bzw. FileDialog Problem AWT, Swing, JavaFX & SWT 10
A Swing JFileChooser - Größenänderung nach Aufruf von showOpenDialog() AWT, Swing, JavaFX & SWT 15
D Serverdirectory auf Client browsen mit JFileChooser AWT, Swing, JavaFX & SWT 7
F icon aus exe auslesen mithilfe des JFilechooser ? AWT, Swing, JavaFX & SWT 4
C JFileChooser und Netzwerk Laufwerke AWT, Swing, JavaFX & SWT 4
Iron Monkey JFileChooser - Drag and Drop AWT, Swing, JavaFX & SWT 5
J JFileChooser - Datei speichern AWT, Swing, JavaFX & SWT 7
M Element aus JList eines JFileChooser entfernen AWT, Swing, JavaFX & SWT 3
P JFileChooser mit verschidene Endungen AWT, Swing, JavaFX & SWT 12
S Swing Ordner im JFileChooser auswählen AWT, Swing, JavaFX & SWT 2
C JFileChooser bringt parent durcheinander AWT, Swing, JavaFX & SWT 2
N JFileChooser mit Dateinamenvorgabe AWT, Swing, JavaFX & SWT 9
S JFileChooser GTK (Ubuntu) "hässlich" AWT, Swing, JavaFX & SWT 2
A Swing JFileChooser mit modifiziertem Kontextmenü AWT, Swing, JavaFX & SWT 4
S JFileChooser öffnet den falschen Ordner AWT, Swing, JavaFX & SWT 4
A Swing JFilechooser zeigt verzeichnisse nicht an AWT, Swing, JavaFX & SWT 2
A Swing JFileChooser - Anzeige in Echtzeit filtern AWT, Swing, JavaFX & SWT 10
M JFileChooser umbenennen verbieten AWT, Swing, JavaFX & SWT 4
Helgon JFileChooser öffnet sich 2x AWT, Swing, JavaFX & SWT 12
K JFileChooser mit Zusatzfunktionen AWT, Swing, JavaFX & SWT 8
GUI-Programmer JFilechooser, mehrere Datein selektieren und Reihenfolge (2) AWT, Swing, JavaFX & SWT 8
V JFileChooser auf Mac und Netzwerkordner AWT, Swing, JavaFX & SWT 2
B JFileChooser breite der Spalten? AWT, Swing, JavaFX & SWT 5
M JFileChooser setCurrentDirectory() - Verzeichnis relativ zum Code/binary AWT, Swing, JavaFX & SWT 14
P Swing Dateinamen im JFileChooser vorschlagen AWT, Swing, JavaFX & SWT 11
M JFileChooser Abfangen des DateiTypen möglich?? AWT, Swing, JavaFX & SWT 5
T Swing JFileChooser --> Desktop und Laufwerke im "Suchen in" - Drop Down AWT, Swing, JavaFX & SWT 3
N JFileChooser - Keine Funtkion AWT, Swing, JavaFX & SWT 13
T JFileChooser - "Öffnen-Button" aktivieren/deaktivieren möglich??? AWT, Swing, JavaFX & SWT 2
jueki Aktuell eingestellten Filter aus einem JFileChooser abfragen. AWT, Swing, JavaFX & SWT 5
F Swing JFileChooser - Dateinamen nicht editierbar machen AWT, Swing, JavaFX & SWT 8
I Fehler bei JFileChooser AWT, Swing, JavaFX & SWT 2
K JFileChooser mehrere Dateien markieren ohne STRG AWT, Swing, JavaFX & SWT 4
Ivan Dolvich [Linux] JFileChooser sieht komisch aus... AWT, Swing, JavaFX & SWT 12
M Zurück-Button in JFileChooser AWT, Swing, JavaFX & SWT 9
N JFileChooser AWT, Swing, JavaFX & SWT 4
D Problem mit JFileChooser -> Daten werden mit anführungsstriche in JTable geschrieben AWT, Swing, JavaFX & SWT 8
S JFileChooser Dateiname Autovervollständigung AWT, Swing, JavaFX & SWT 2
B JDialog über JFileChooser anzeigen AWT, Swing, JavaFX & SWT 6
I Swing JFileChooser '\' im Pfad... AWT, Swing, JavaFX & SWT 2
K Swing JFileChooser zum Speichern - FileFilter AWT, Swing, JavaFX & SWT 2
M Swing Execption beim JFileChooser AWT, Swing, JavaFX & SWT 4
kodela Swing JFileChooser und die Datei-Extension AWT, Swing, JavaFX & SWT 3
jueki eigenen Button in JFileChooser einfügen AWT, Swing, JavaFX & SWT 7
alderwaran jFileChooser showSaveDialog, dateinamen werden mit pfadnamen überschrieben beim navigieren AWT, Swing, JavaFX & SWT 1
B Swing Suche JFileChooser zum Speichern AWT, Swing, JavaFX & SWT 2
Iron Monkey JFileChooser DIRECTORIES_ONLY AWT, Swing, JavaFX & SWT 4
Semox Swing JFileChooser: Problem Approve oder Cancel abzufangen AWT, Swing, JavaFX & SWT 7
H JTree - nach Auswahl aus JFileChooser wird nur der erste Knoten angezeigt AWT, Swing, JavaFX & SWT 3
kodela Sicherheitsabfrage mit JFileChooser AWT, Swing, JavaFX & SWT 2
DARK_ZERATO2 jFileChooser AWT, Swing, JavaFX & SWT 4
G JFileChooser Problem AWT, Swing, JavaFX & SWT 4
G Swing JFileChooser Event für neue Directory? AWT, Swing, JavaFX & SWT 5
P JFileChooser AWT, Swing, JavaFX & SWT 2
M Swing JFileChooser und JFrame AWT, Swing, JavaFX & SWT 5
G Swing JFileChooser in einem JPanel? AWT, Swing, JavaFX & SWT 3
J JFileChooser Dateiauswahl beim Tippen einschränken AWT, Swing, JavaFX & SWT 3
M Swing JFileChooser mit Windows 7 AWT, Swing, JavaFX & SWT 8
R JFileChooser - Initiales Verzeichnis auswählen AWT, Swing, JavaFX & SWT 8
brainray JFileChooser - es sollen nur Ordner wählbar sein AWT, Swing, JavaFX & SWT 2
T JFileChooser Problem AWT, Swing, JavaFX & SWT 3
N Mit JFileChooser ein Verzeichnis auswählen AWT, Swing, JavaFX & SWT 7
M Swing JFileChooser und versteckte Ordner AWT, Swing, JavaFX & SWT 2
F jFileChooser verwenden AWT, Swing, JavaFX & SWT 4
M Swing ImageIcon über JFileChooser einbinden AWT, Swing, JavaFX & SWT 4
F JFileChooser mal wieder AWT, Swing, JavaFX & SWT 2
ARadauer Swing JFileChooser mit Bildvorschau AWT, Swing, JavaFX & SWT 5
H Swing Dateiauswahldialog mit JFileChooser funktioniert unzuverlässig AWT, Swing, JavaFX & SWT 11
G Swing JFileChooser nur in Verzeichnis+Unterverzeichnisse AWT, Swing, JavaFX & SWT 5
K Swing JFileChooser AWT, Swing, JavaFX & SWT 6
M JFileChooser einschränken AWT, Swing, JavaFX & SWT 3
L JFileChooser braucht lang zum öffnen AWT, Swing, JavaFX & SWT 2
S NullPointerException bei JFileChooser AWT, Swing, JavaFX & SWT 8
M JFilechooser defaultdirectory AWT, Swing, JavaFX & SWT 5
C JFilechooser this.setAlwaysOnTop AWT, Swing, JavaFX & SWT 2
G JFileChooser - erkennen v. existierenden Dateien ohne Endung AWT, Swing, JavaFX & SWT 1

Ähnliche Java Themen

Neue Themen


Oben