Fehler bei der Anzeige Grafischer Elemente

Status
Nicht offen für weitere Antworten.

M.F.G.

Mitglied
Hey Leute, ich brauch eure hilfe!
Im vorraus: Ich benutze BlueJ als Entwicklungsumgebung

Ich bin gerade dabei ein Programm zu schreiben mit dem man Botschaften chiffrieren/verschlüsseln und auch dechiffrieren/entschlüsseln kann.

Das Funktioniert auch soweit, hab nun auch eine Grafischeoberfläche dazu geschrieben und auch die funktioniert solange ich BlueJ zum kompilieren benutze.

Wenn ich nun aber dieses ganze Projekt zu einer .jar datei packe/konvertiere(oder wie auch immer das heißt) und dann ausführe werden die ganzen Grafischenelemente falschpositioniert oder garnicht angezeigt.

Hier mal der Quelltext:

Java:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.awt.image.*;
import java.awt.Toolkit;
import java.awt.datatransfer.*;
 import javax.swing.ImageIcon;
 import javax.swing.JFrame;
 import javax.swing.JLabel;
/**
 *diese Klasse stellt die Benutzeroberfläche da
 * 
 * @author M. F. G.
 * @version 02.10.2009
 * 1.2
 */
public class Fenster
{
    int farbe1=238,farbe2=238,farbe3=238;
    Label e1,e2,e3,e4,e5,e6;
    Choice cheffriermethode;
    TextField schluessel;
    TextArea klartext,geheimtext;
    Button umrechnen,umrechnen2;
    JLabel Bild;
    Zwischenablage Zwischenablage;
    Checkbox autokopie;
    ChiffrierMethode ChiffrierMethode =new ChiffrierMethode();
    DeChiffrierMethode DeChiffrierMethode =new DeChiffrierMethode();
    
    public static void main(String [] args)
    {
       new Fenster();
       
    }
    /**
     * Constructor for objects of class Fenster
     */
    public Fenster()
    {
        JFrame frame = new JFrame("Chiffrierer || by M.F.G.");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setSize(800, 680);
        frame.setBackground(new Color (farbe1,farbe2,farbe3));
        frame.setVisible(true);
        frame.setResizable(false);
        frame.addWindowListener(new WindowAdapter()
        {
            public void windowClosing(WindowEvent e)
            {
              //  System.exit(0);                
            }
        });
       
        Bild = new JLabel(new ImageIcon("Chiffrierer.png"));
        Bild.setLocation(-2, 0);
        Bild.setVisible(true);
        Bild.setSize(800, 60);
        frame.add(Bild);
        
        e1 = new Label();
        e1.setText("Klartext:");
        e1.setLocation(20, 170);
        e1.setVisible(true);
        e1.setSize(100, 20);
        e1.setForeground(new Color (0, 0, 0));
        e1.setBackground(new Color (farbe1,farbe2,farbe3));
        frame.add(e1);
        
        e2 = new Label();
        e2.setText("Geheimtext:   ");
        e2.setLocation(480, 170);
        e2.setVisible(true);
        e2.setSize(100, 20);
        e2.setForeground(new Color (0, 0, 0));
        e2.setBackground(new Color (farbe1,farbe2,farbe3));
        frame.add(e2);
        
        e3 = new Label();
        e3.setText("Schlüssel:");
        e3.setLocation(20, 70);
        e3.setVisible(true);
        e3.setSize(100, 20);
        e3.setForeground(new Color (0, 0, 0));
        e3.setBackground(new Color (farbe1,farbe2,farbe3));
        frame.add(e3);
        
        e4 = new Label();
        e4.setText("Chiffrier-Methode:");
        e4.setLocation(20, 120);
        e4.setVisible(true);
        e4.setSize(120, 20);
        e4.setForeground(new Color (0, 0, 0));
        e4.setBackground(new Color (farbe1,farbe2,farbe3));
        frame.add(e4);
        
        e5 = new Label();
        e5.setText("Automatisch in Zwischenablage kopieren:");
        e5.setLocation(480, 600);
        e5.setVisible(true);
        e5.setSize(240, 40);
        e5.setForeground(new Color (0, 0, 0));
        e5.setBackground(new Color (farbe1,farbe2,farbe3));
        frame.add(e5);
        
        autokopie = new Checkbox();
        autokopie.setLocation(720, 600);
        autokopie.setVisible(true);
        autokopie.setSize(40, 40);
        autokopie.setForeground(new Color (0, 0, 0));
        autokopie.setBackground(new Color (255, 255, 255));
        autokopie.setEnabled(true);
        frame.add(autokopie);
        
        schluessel = new TextField();
        schluessel.setLocation(20, 90);
        schluessel.setText("0");
        schluessel.setVisible(true);
        schluessel.setSize(740, 20);
        schluessel.setEnabled(true);
        frame.add(schluessel);
        
        cheffriermethode = new Choice();
        cheffriermethode.setLocation(20, 140);
        cheffriermethode.setVisible(true);
        cheffriermethode.setSize(170, 20);
        cheffriermethode.setEnabled(true);
        frame.add(cheffriermethode); 
        cheffriermethode.add("Monoalphabetisch");
        cheffriermethode.add("Polyalphabetisch");
        cheffriermethode.select(1);
        
        umrechnen = new Button();
        umrechnen.setLocation(340, 300);
        umrechnen.setLabel("Cheffrieren >");
        umrechnen.setVisible(true);
        umrechnen.setSize(120, 30);
        umrechnen.setEnabled(true);
        frame.add(umrechnen);
        
        umrechnen.addActionListener(new ActionListener()
        {
            public void actionPerformed(ActionEvent e)
            {
                switch(cheffriermethode.getSelectedIndex())
                {
                    case 0: {
                                
                                geheimtext.setText("" + ChiffrierMethode.Monoalphabetisch(klartext.getText(),   Integer.parseInt(schluessel.getText())));
                                if(autokopie.getState()==true)
                                Zwischenablage.ablegen(ChiffrierMethode.Monoalphabetisch(klartext.getText(),   Integer.parseInt(schluessel.getText())));
                                break;
                             }
                    case 1: {
                                  geheimtext.setText("" + ChiffrierMethode.Polyalphabetisch(klartext.getText(),   schluessel.getText()));
                                  if(autokopie.getState()==true)
                                  Zwischenablage.ablegen(ChiffrierMethode.Polyalphabetisch(klartext.getText(),   schluessel.getText()));
                                  
                                  if(autokopie.getState()==true)
                                 
                                  break;
                            }
                 }
            }
        });
        
        umrechnen2 = new Button();
        umrechnen2.setLocation(340, 350);
        umrechnen2.setLabel("< Decheffrieren");
        umrechnen2.setVisible(true);
        umrechnen2.setSize(120, 30);
        umrechnen2.setEnabled(true);
        frame.add(umrechnen2);
        
        umrechnen2.addActionListener(new ActionListener()
        {
            public void actionPerformed(ActionEvent e)
            {
                switch(cheffriermethode.getSelectedIndex())
                {
                    case 0: {
                                  klartext.setText("" + DeChiffrierMethode.Monoalphabetisch(geheimtext.getText(),   Integer.parseInt(schluessel.getText())));                                
                                  break;
                            }
                   case 1: {
                                  klartext.setText("" + DeChiffrierMethode.Polyalphabetisch(geheimtext.getText(),   schluessel.getText()));

                                 
                                  break;
                           }
                }
            }
        });
        
        
        klartext = new TextArea();
        klartext.setLocation(20, 200);
        klartext.setText("");
        klartext.setVisible(true);
        klartext.setSize(300, 400);
        klartext.setEnabled(true);
        frame.add(klartext);
        
        geheimtext = new TextArea();
        geheimtext.setLocation(480, 200);
        geheimtext.setText("");
        geheimtext.setVisible(true);
        geheimtext.setSize(300, 400);
        geheimtext.setEnabled(true);
        frame.add(geheimtext);
        
        //frame.add(new JLabel(new ImageIcon("c:/desktop.jpg")));
        //frame.pack();
  }
   
}

Ich hoff ihr könnt mir weiterhelfen.
ich danke schonmal im vorraus
euer M.F.G.
 

Marco13

Top Contributor
Nicht Swing und AWT mischen - also nicht JFrame und Label oder Frame und JLabel, sondern entweder AWT (Frame und Label) oder (besser) Swing, JFrame, JLabel, JButton, JCheckBox usw.

Die einzelnen Components muss man NICHT mit setVisible und setEnabled aktvieren. Stattdessen sollte NUR
frame.setVisible(true);
GANZ am Ende gemacht werden, wenn schon alle anderen Komponenten drauf sind.
 

M.F.G.

Mitglied
Danke für die Antwort

Ich hab daraufhin den Quelltext nun so verändert:

Java:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.awt.image.*;
import java.awt.Toolkit;
import java.awt.datatransfer.*;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
/**
 *diese Klasse stellt die Benutzeroberfläche da
 * 
 * @author M. F. G.
 * @version 02.10.2009
 * 1.2
 */
public class Fenster
{
    int farbe1=238,farbe2=238,farbe3=238;
    JLabel e1,e2,e3,e4,e5,e6;
    JComboBox cheffriermethode;
    JTextField schluessel;
    JTextArea klartext,geheimtext;
    JButton umrechnen,umrechnen2;
    JLabel Bild;
    Zwischenablage Zwischenablage;
    JCheckBox autokopie;
    ChiffrierMethode ChiffrierMethode =new ChiffrierMethode();
    DeChiffrierMethode DeChiffrierMethode =new DeChiffrierMethode();
    
    public static void main(String [] args)
    {
       new Fenster();
       
    }
    /**
     * Constructor for objects of class Fenster
     */
    public Fenster()
    {
        Frame frame = new Frame("Chiffrierer || by M.F.G.");
        frame.setSize(800, 680);
        frame.setBackground(new Color (farbe1,farbe2,farbe3));
      //  frame.setVisible(true);
        frame.setResizable(false);
        frame.addWindowListener(new WindowAdapter()
        {
            public void windowClosing(WindowEvent e)
            {
                System.exit(0);                
            }
        });
       
        Bild = new JLabel(new ImageIcon("Chiffrierer.png"));
        Bild.setLocation(0, 15);
        Bild.setSize(800, 60);
        frame.add(Bild);
        
        e1 = new JLabel();
        e1.setText("Klartext:");
        e1.setLocation(20, 170);
        e1.setSize(100, 20);
        e1.setForeground(new Color (0, 0, 0));
        e1.setBackground(new Color (farbe1,farbe2,farbe3));
        frame.add(e1);
        
        e2 = new JLabel();
        e2.setText("Geheimtext:   ");
        e2.setLocation(480, 170);
        e2.setSize(100, 20);
        e2.setForeground(new Color (0, 0, 0));
        e2.setBackground(new Color (farbe1,farbe2,farbe3));
        frame.add(e2);
        
        e3 = new JLabel();
        e3.setText("Schlüssel:");
        e3.setLocation(20, 80);
        e3.setSize(100, 20);
        e3.setForeground(new Color (0, 0, 0));
        e3.setBackground(new Color (farbe1,farbe2,farbe3));
        frame.add(e3);
        
        e4 = new JLabel();
        e4.setText("Chiffrier-Methode:");
        e4.setLocation(20, 120);
        e4.setSize(120, 20);
        e4.setForeground(new Color (0, 0, 0));
        e4.setBackground(new Color (farbe1,farbe2,farbe3));
        frame.add(e4);
        
        e5 = new JLabel();
        e5.setText("Automatisch in Zwischenablage kopieren:");
        e5.setLocation(480, 600);
        e5.setSize(240, 40);
        e5.setForeground(new Color (0, 0, 0));
        e5.setBackground(new Color (farbe1,farbe2,farbe3));
        frame.add(e5);
        
        autokopie = new JCheckBox();
        autokopie.setLocation(720, 600);
        autokopie.setSize(40, 40);
        autokopie.setForeground(new Color (0, 0, 0));
        autokopie.setBackground(new Color (255, 255, 255));
        frame.add(autokopie);
        
        schluessel = new JTextField();
        schluessel.setLocation(20, 100);
        schluessel.setText("0");
        schluessel.setSize(740, 20);
        frame.add(schluessel);
        
        cheffriermethode = new JComboBox();
        cheffriermethode.setLocation(20, 140);
        cheffriermethode.setSize(170, 20);
        frame.add(cheffriermethode); 
        cheffriermethode.addItem("Monoalphabetisch");
        cheffriermethode.addItem("Polyalphabetisch");
        cheffriermethode.setSelectedItem(0);
        
        umrechnen = new JButton();
        umrechnen.setLocation(340, 300);
        umrechnen.setText("Cheffrieren>");
        umrechnen.setSize(120, 30);
        frame.add(umrechnen);
        
        umrechnen.addActionListener(new ActionListener()
        {
            public void actionPerformed(ActionEvent e)
            {
                switch(cheffriermethode.getSelectedIndex())
                {
                    case 0: {
                                
                                geheimtext.setText("" + ChiffrierMethode.Monoalphabetisch(klartext.getText(),   Integer.parseInt(schluessel.getText())));
                                if(autokopie.isSelected()==true)
                                Zwischenablage.ablegen(ChiffrierMethode.Monoalphabetisch(klartext.getText(),   Integer.parseInt(schluessel.getText())));
                                break;
                             }
                    case 1: {
                                  geheimtext.setText("" + ChiffrierMethode.Polyalphabetisch(klartext.getText(),   schluessel.getText()));
                                  if(autokopie.isSelected()==true)
                                  Zwischenablage.ablegen(ChiffrierMethode.Polyalphabetisch(klartext.getText(),   schluessel.getText()));
                                 
                                  break;
                            }
                 }
            }
        });
        
        umrechnen2 = new JButton();
        umrechnen2.setLocation(340, 350);
        umrechnen2.setText("<Decheffrieren");
        umrechnen2.setSize(120, 30);
        frame.add(umrechnen2);
        
        umrechnen2.addActionListener(new ActionListener()
        {
            public void actionPerformed(ActionEvent e)
            {
                switch(cheffriermethode.getSelectedIndex())
                {
                    case 0: {
                                  klartext.setText("" + DeChiffrierMethode.Monoalphabetisch(geheimtext.getText(),   Integer.parseInt(schluessel.getText())));                                
                                  break;
                            }
                   case 1: {
                                  klartext.setText("" + DeChiffrierMethode.Polyalphabetisch(geheimtext.getText(),   schluessel.getText()));

                                 
                                  break;
                           }
                }
            }
        });
        
        
        klartext = new JTextArea();
        klartext.setLocation(20, 200);
        klartext.setBackground(new Color (255,255,255));
        klartext.setText("");
        klartext.setSize(300, 400);
        frame.add(klartext);
        
        geheimtext = new JTextArea();
        geheimtext.setLocation(480, 200);
        geheimtext.setBackground(new Color (255,255,255));
        geheimtext.setText("");
        geheimtext.setSize(300, 400);
        frame.add(geheimtext);
        
        frame.setVisible(true);
        //frame.add(new JLabel(new ImageIcon("c:/desktop.jpg")));
        //frame.pack();
  }
   
}

Hab ich jetzt alles auf Swing umgestellt?
Weil ohne" import java.at.*; " geht zb. des mit
" ....setBackground(new Color (farbe1,farbe2,farbe3)); "
nicht.

Und zum größten Teil hatt dein tipp mit "komplett auf Swing Swing" umstellen auch funktioniert, leider wirt jetzt die JTextArea "geheimtext" links oben (stadt rechts unten)eine grad mal ein Spalte breit angezeigt.

Zudem ist die background farbe die falsche, wodurch sie mit dem Fenster "verschmilzt".
Leider wirt auch das Bild nicht angezeigt.

uch bekomm ich jetzt eine Fehlermeldung wenn ich "automtaischin die Zwischenablage kopieren" aktiviere, die Meldung:
Java:
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
	at Fenster$2.actionPerformed(Fenster.java:137)
	at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1849)
	at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2169)
	at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:420)
	at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:258)
	at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
	at java.awt.Component.processMouseEvent(Component.java:5517)
	at javax.swing.JComponent.processMouseEvent(JComponent.java:3135)
	at java.awt.Component.processEvent(Component.java:5282)
	at java.awt.Container.processEvent(Container.java:1966)
	at java.awt.Component.dispatchEventImpl(Component.java:3984)
	at java.awt.Container.dispatchEventImpl(Container.java:2024)
	at java.awt.Component.dispatchEvent(Component.java:3819)
	at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4212)
	at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3892)
	at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3822)
	at java.awt.Container.dispatchEventImpl(Container.java:2010)
	at java.awt.Window.dispatchEventImpl(Window.java:1791)
	at java.awt.Component.dispatchEvent(Component.java:3819)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:463)
	at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:242)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:163)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:157)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:149)
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)


Hier ist der Quelltext von der klasse: Zwischenablage:

Java:
import java.awt.Toolkit;
import java.awt.datatransfer.Clipboard;
import java.awt.datatransfer.ClipboardOwner;
import java.awt.datatransfer.DataFlavor;
import java.awt.datatransfer.StringSelection;
import java.awt.datatransfer.Transferable;
import java.awt.datatransfer.UnsupportedFlavorException;
import java.io.IOException;
 
public class Zwischenablage implements ClipboardOwner {
 
    Clipboard clipboard = null;
 
    public static void main(String args[]) {
        Zwischenablage clipboardDemo = new Zwischenablage();
        String strValue = "Mein Text";
        System.out.println("Writing to Clipboard: \"" + strValue + "\"");  // "Mein Text"
        clipboardDemo.ablegen(strValue);
        System.out.println("Reading from Clipboard: \"" 
                           + clipboardDemo.getFromClipboard(DataFlavor.stringFlavor) + "\"");  // "Mein Text"
    }
 
    public Zwischenablage() {
        clipboard = Toolkit.getDefaultToolkit().getSystemClipboard();
    }
 
    public String getFromClipboard(DataFlavor flavor) {
        String str = null;
        Transferable contents = clipboard.getContents(this);
        if (contents == null) 
            return str;
 
        if (contents.isDataFlavorSupported(flavor)) {
            try {
                str = (String) contents.getTransferData(flavor);
            } catch (UnsupportedFlavorException e) {
                e.printStackTrace();
            }
            catch (IOException e) {
                e.printStackTrace();
            }
        }
 
        return (str.length() == 0 ? null : str);
    }
 
    public void ablegen(String str) {
        StringSelection strSel = new StringSelection(str);
        clipboard.setContents(strSel, this);
    }
 

    public void lostOwnership(Clipboard clipboard, Transferable contents) {
    }
}


Ich hoffe mal der ewichlange Text hier hält euch nicht ab mir zu helfen!
Danke schonmal!!!!
 

M.F.G.

Mitglied
Den fehler mit der Zwischenablage hab ich behoben , lag daran des ich vergessen hab ein Objekt der Klasse Zwischenablag zu erstellen:
Zwischenablage = Zwischenablage();
:oops:
 
Zuletzt bearbeitet:

Marco13

Top Contributor
Der import
import java.awt.*
kann (muss) drin bleiben: Für Color, Graphics & Co - und auch java.awt.event für ActionListener und so. Es geht nur darum, dass man bei den Components (also dend sichtbaren Elementen der Anwendung, wie Buttons und TextFields) nicht AWT und Swing vermischen sollte - dort solltest du für Swing also überal die J...-Variante nehmen.
Das hat du ja jetzt, soweit ich sehe. (Auch wenn das Scrollen auf einem Monitor, der gerade nicht 1600 Pixel breit ist, sehr mühsam ist.......)
 

M.F.G.

Mitglied
Ok hast du dann eine Idee warum des immernoch nicht funktioniert?
Hab auch mal versucht ohne Swing, also kommplett in AWT aber auch da gehts nicht richtig???
(Und sry des des so breit wurde aber der Quelltext is halt an der stelle recht lang)

Hier is mal ein Bild von dem Problem(die Swing-Lösung):

Cfehler1.JPG

(falls man den text den ich da hin gekritzelt hab net lesen kann: " Das sollte hier stehen")

gut zu sehen: dieTextArea`s sind gleichfabig mit dem hintergrund und ihnen fehlen ScrollBars.
Wie bekomm ich da wieder Scrollbars hin?

Interessant: Wärend Awt bei jedem neuen aufruf der .jar andere Fehler hatt,
bekomm ich bei Swing immer den oben beschriebenen.
 
Zuletzt bearbeitet:

Marco13

Top Contributor
Du solltest dich Festlegen und nicht hin- und herprobieren - entweder Swing oder AWT. Ich würde dir auf jeden Fall das modernere und flexiblere Swing empfehlen. Davon ausgehend, dass du damit einverstanden bist ;) : Im zuletzt geposteten Code waren alle Components Swing (alle mit "J"), AUSSER dem Frame - das sollte ein JFrame sein. Es kann sein, dass du dann an stellen wo bisher
Code:
Frame frame = new Frame(...);
frame.setLayout(...);
frame.add(someComponent);
stand, jetzt
Code:
JFrame frame = new JFrame(...);
frame.getContentPane().setLayout(...);
frame.getContentPane().add(someComponent);
schreiben musst - sonst ändert sich aber praktisch nichts.

Wenn's immer noch Probleme gibt, poste mal den aktuellen Stand.

BTW: Es gibt die Empfehlung, dass Zeilen in Java-Programmen nicht mehr als 80 Zeichen lang sein sollten....
 

M.F.G.

Mitglied
So, jetzt hab ich an jeder stelle an der frame. ...
vorkam dieses
Java:
getContentPane()

dazwischengeschoben.
wenn ich des aber jetzt ausführe seh ich garnichts mehr/es passiert garnichts mehr.
:bahnhof::bahnhof::bahnhof:
 
Zuletzt bearbeitet:

M.F.G.

Mitglied
Hier ist der aktuelle Code:

Java:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
/**
 *diese Klasse stellt die Benutzeroberfläche da
 * 
 * @author M. F. G.
 * @version 02.10.2009
 * 1.2
 */
public class Fenster
{
    int farbe1=238,farbe2=238,farbe3=238;
    JLabel e1,e2,e3,e4,e5,e6;
    JComboBox cheffriermethode;
    JTextField schluessel;
    JTextArea klartext,geheimtext;
    JButton umrechnen,umrechnen2;
    JLabel Bild;
    Zwischenablage Zwischenablage =new Zwischenablage();
    JCheckBox autokopie;
    ChiffrierMethode ChiffrierMethode =new ChiffrierMethode();
    DeChiffrierMethode DeChiffrierMethode =new DeChiffrierMethode();
    
    public static void main(String [] args)
    {
       new Fenster();
       
    }
    /**
     * Constructor for objects of class Fenster
     */
    public Fenster()
    {
        JFrame frame = new JFrame("Chiffrierer || by M.F.G.");
        frame.getContentPane().setSize(800, 680);
        frame.getContentPane().setBackground(new Color (farbe1,farbe2,farbe3));
      //  frame.setVisible(true);
        //frame.setResizable(false);
        frame.addWindowListener(new WindowAdapter()
        {
            public void windowClosing(WindowEvent e)
            {
                System.exit(0);                
            }
        });
       
        Bild = new JLabel(new ImageIcon("Chiffrierer.png"));
        Bild.setLocation(0, 15);
        Bild.setSize(800, 60);
        frame.getContentPane().add(Bild);
        
        e1 = new JLabel();
        e1.setText("Klartext:");
        e1.setLocation(20, 170);
        e1.setSize(100, 20);
        e1.setForeground(new Color (0, 0, 0));
        e1.setBackground(new Color (farbe1,farbe2,farbe3));
        frame.getContentPane().add(e1);
        
        e2 = new JLabel();
        e2.setText("Geheimtext:   ");
        e2.setLocation(480, 170);
        e2.setSize(100, 20);
        e2.setForeground(new Color (0, 0, 0));
        e2.setBackground(new Color (farbe1,farbe2,farbe3));
        frame.getContentPane().add(e2);
        
        e3 = new JLabel();
        e3.setText("Schlüssel:");
        e3.setLocation(20, 80);
        e3.setSize(100, 20);
        e3.setForeground(new Color (0, 0, 0));
        e3.setBackground(new Color (farbe1,farbe2,farbe3));
        frame.getContentPane().add(e3);
        
        e4 = new JLabel();
        e4.setText("Chiffrier-Methode:");
        e4.setLocation(20, 120);
        e4.setSize(120, 20);
        e4.setForeground(new Color (0, 0, 0));
        e4.setBackground(new Color (farbe1,farbe2,farbe3));
        frame.getContentPane().add(e4);
        
        e5 = new JLabel();
        e5.setText("Automatisch in Zwischenablage kopieren:");
        e5.setLocation(480, 600);
        e5.setSize(240, 40);
        e5.setForeground(new Color (0, 0, 0));
        e5.setBackground(new Color (farbe1,farbe2,farbe3));
        frame.getContentPane().add(e5);
        
        autokopie = new JCheckBox();
        autokopie.setLocation(720, 600);
        autokopie.setSize(40, 40);
        autokopie.setForeground(new Color (0, 0, 0));
        autokopie.setBackground(new Color (255, 255, 255));
        frame.getContentPane().add(autokopie);
        
        schluessel = new JTextField();
        schluessel.setLocation(20, 100);
        schluessel.setText("0");
        schluessel.setSize(740, 20);
        frame.getContentPane().add(schluessel);
        
        cheffriermethode = new JComboBox();
        cheffriermethode.setLocation(20, 140);
        cheffriermethode.setSize(170, 20);
        frame.add(cheffriermethode); 
        cheffriermethode.addItem("Monoalphabetisch");
        cheffriermethode.addItem("Polyalphabetisch");
        cheffriermethode.setSelectedItem(0);
        
        umrechnen = new JButton();
        umrechnen.setLocation(340, 300);
        umrechnen.setText("Cheffrieren>");
        umrechnen.setSize(120, 30);
        frame.getContentPane().add(umrechnen);
        
        umrechnen.addActionListener(new ActionListener()
        {
            public void actionPerformed(ActionEvent e)
            {
                switch(cheffriermethode.getSelectedIndex())
                {
                    case 0: {
                                
                                geheimtext.setText("" + ChiffrierMethode.Monoalphabetisch(klartext.getText(),   Integer.parseInt(schluessel.getText())));
                                if(autokopie.isSelected()==true)
                                Zwischenablage.ablegen(ChiffrierMethode.Monoalphabetisch(klartext.getText(),   Integer.parseInt(schluessel.getText())));
                                break;
                             }
                    case 1: {
                                  geheimtext.setText("" + ChiffrierMethode.Polyalphabetisch(klartext.getText(),   schluessel.getText()));
                                  if(autokopie.isSelected()==true)
                                  Zwischenablage.ablegen(ChiffrierMethode.Polyalphabetisch(klartext.getText(),   schluessel.getText()));
                                 
                                  break;
                            }
                 }
            }
        });
        
        umrechnen2 = new JButton();
        umrechnen2.setLocation(340, 350);
        umrechnen2.setText("<Decheffrieren");
        umrechnen2.setSize(120, 30);
        frame.getContentPane().add(umrechnen2);
        
        umrechnen2.addActionListener(new ActionListener()
        {
            public void actionPerformed(ActionEvent e)
            {
                switch(cheffriermethode.getSelectedIndex())
                {
                    case 0: {
         klartext.setText("" + DeChiffrierMethode.Monoalphabetisch(geheimtext.getText(),   Integer.parseInt(schluessel.getText())));                                
                                  break;
                            }
                   case 1: {
        klartext.setText("" + DeChiffrierMethode.Polyalphabetisch(geheimtext.getText(),   schluessel.getText()));

                                 
                                  break;
                           }
                }
            }
        });       
        
        klartext = new JTextArea();
        klartext.setLocation(20, 200);
        klartext.setBackground(new Color (255,5,255));
        klartext.setText("");
        klartext.setSize(300, 400);
        frame.getContentPane().add(klartext);
        
        geheimtext = new JTextArea();
        geheimtext.setBackground(new Color (255,5,255));
        geheimtext.setText("");
        geheimtext.setSize(200, 200);
        geheimtext.setLocation(480, 200);
        frame.getContentPane().add(geheimtext); 
        
        frame.getContentPane().setVisible(true);
  }  
}
 

hdi

Top Contributor
bei setVisible() solltest du dich nicht auf's Content Pane beziehen, d.h. an dieser Stelle musst du das wieder rausnehmen. Denn damit zeigst du nur den Inhalt des Frames an, aber nicht das Frame selber. Deshalb sieht man also nach wie vor nichts, denn es wird kein Inhalt angezeigt solange kein Fenster da ist.
 

M.F.G.

Mitglied
Danke euch gehts jetzt,
ic hhab herausgefunden das immer das Objekt welches als letzztes im Quelltext beschrieben wir Fehler hatt, daher wurde imer die JtextArea falsch angezeigt.
nun hab ich so primitiv wie is ist, einfach ein Obejt darunter gescchrieben welches ich überhauptnich tbrauc und auch nicht im weg ist.
Die lösung ist nicht elegant aber sie funktioniert.

Habt ihr eine Ahnung wieso des os ist?<---is net so wichtig
meine (hoffentlich) letzte Frage an euch: Wie bekomm ich jetzt noch Scroll-Balken für die JTextArea hin und/oder einen automatischen Zeilenumbruch?

Hier nochmals der Quelltext:

Code:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
/**
 *diese Klasse stellt die Benutzeroberfläche da
 * 
 * @author M. F. G.
 * @version 02.10.2009
 * 1.2
 */
public class Fenster
{
    //stadartfarbe 238,238,238
    int farbe1=218,farbe2=218,farbe3=218;
    JLabel e1,e2,e3,e4,e5,e6,schluss;
    JComboBox cheffriermethode;
    JTextField schluessel;
    JTextArea klartext,geheimtext;
    JButton umrechnen,umrechnen2;
    JLabel Bild;
    Zwischenablage Zwischenablage =new Zwischenablage();
    JCheckBox autokopie;
    ChiffrierMethode ChiffrierMethode =new ChiffrierMethode();
    DeChiffrierMethode DeChiffrierMethode =new DeChiffrierMethode();
    
    public static void main(String [] args)
    {
       new Fenster();
       
    }
    /**
     * Constructor for objects of class Fenster
     */
    public Fenster()
    {
        JFrame frame = new JFrame("Chiffrierer || by M.F.G.");
        frame.getContentPane().setSize(800, 680);
        frame.getContentPane().setBackground(new Color (farbe1,farbe2,farbe3));
        frame.setResizable(false);
        frame.addWindowListener(new WindowAdapter()
        {
            public void windowClosing(WindowEvent e)
            {
                System.exit(0);                
            }
        });
       
       Bild = new JLabel(new ImageIcon(getClass().getResource("resources/Chiffrierer.png")));
      // Bild = new JLabel(new ImageIcon("Chiffrierer.png"));
        Bild.setLocation(-5, 0);
        Bild.setSize(800, 60);
        frame.getContentPane().add(Bild);
        
        e1 = new JLabel();
        e1.setText("Klartext:");
        e1.setLocation(20, 170);
        e1.setSize(100, 20);
        e1.setForeground(new Color (0, 0, 0));
       // e1.setBackground(new Color (farbe1,farbe2,farbe3));
        frame.getContentPane().add(e1);
        
        e2 = new JLabel();
        e2.setText("Geheimtext:   ");
        e2.setLocation(480, 170);
        e2.setSize(100, 20);
       // e2.setForeground(new Color (0, 0, 0));
      //  e2.setBackground(new Color (farbe1,farbe2,farbe3));
        frame.getContentPane().add(e2);
        
        e3 = new JLabel();
        e3.setText("Schlüssel:");
        e3.setLocation(20, 80);
        e3.setSize(100, 20);
       // e3.setForeground(new Color (0, 0, 0));
       // e3.setBackground(new Color (farbe1,farbe2,farbe3));
        frame.getContentPane().add(e3);
        
        e4 = new JLabel();
        e4.setText("Chiffrier-Methode:");
        e4.setLocation(20, 120);
        e4.setSize(120, 20);
       // e4.setForeground(new Color (0, 0, 0));
       // e4.setBackground(new Color (farbe1,farbe2,farbe3));
        frame.getContentPane().add(e4);
        
        e5 = new JLabel();
        e5.setText("Automatisch in Zwischenablage kopieren:");
        e5.setLocation(480, 600);
        e5.setSize(240, 40);
        //e5.setForeground(new Color (0, 0, 0));
        //e5.setBackground(new Color (farbe1,farbe2,farbe3));
        frame.getContentPane().add(e5);
        
        autokopie = new JCheckBox();
        autokopie.setLocation(720, 610);
        autokopie.setSize(20, 20);
        autokopie.setBackground(new Color (farbe1,farbe2,farbe3));
        frame.getContentPane().add(autokopie);
        
        schluessel = new JTextField();
        schluessel.setLocation(20, 100);
        schluessel.setText("0");
        schluessel.setSize(740, 20);
        frame.getContentPane().add(schluessel);
        
        cheffriermethode = new JComboBox();
        cheffriermethode.setLocation(20, 140);
        cheffriermethode.setSize(170, 20);
        frame.add(cheffriermethode); 
        cheffriermethode.addItem("Monoalphabetisch");
        cheffriermethode.addItem("Polyalphabetisch");
        cheffriermethode.setSelectedItem(0);
        
        umrechnen = new JButton();
        umrechnen.setLocation(340, 300);
        umrechnen.setText("Cheffrieren>");
        umrechnen.setSize(120, 30);
        frame.getContentPane().add(umrechnen);
        
        umrechnen.addActionListener(new ActionListener()
        {
            public void actionPerformed(ActionEvent e)
            {
                switch(cheffriermethode.getSelectedIndex())
                {
                    case 0: {
                                
                                geheimtext.setText("" + ChiffrierMethode.Monoalphabetisch(klartext.getText(),   Integer.parseInt(schluessel.getText())));
                                if(autokopie.isSelected()==true)
                                Zwischenablage.ablegen(ChiffrierMethode.Monoalphabetisch(klartext.getText(),   Integer.parseInt(schluessel.getText())));
                                break;
                             }
                    case 1: {
                                  geheimtext.setText("" + ChiffrierMethode.Polyalphabetisch(klartext.getText(),   schluessel.getText()));
                                  if(autokopie.isSelected()==true)
                                  Zwischenablage.ablegen(ChiffrierMethode.Polyalphabetisch(klartext.getText(),   schluessel.getText()));
                                 
                                  break;
                            }
                 }
            }
        });
        
        umrechnen2 = new JButton();
        umrechnen2.setLocation(340, 350);
        umrechnen2.setText("<Decheffrieren");
        umrechnen2.setSize(120, 30);
        frame.getContentPane().add(umrechnen2);
        
        umrechnen2.addActionListener(new ActionListener()
        {
            public void actionPerformed(ActionEvent e)
            {
                switch(cheffriermethode.getSelectedIndex())
                {
                    case 0: {
         klartext.setText("" + DeChiffrierMethode.Monoalphabetisch(geheimtext.getText(),   Integer.parseInt(schluessel.getText())));                                
                                  break;
                            }
                   case 1: {
        klartext.setText("" + DeChiffrierMethode.Polyalphabetisch(geheimtext.getText(),   schluessel.getText()));

                                 
                                  break;
                           }
                }
            }
        });       
        
        klartext = new JTextArea();
        klartext.setLocation(20, 200);
        klartext.setBackground(new Color (255,255,255));
        klartext.setText("huii");
        klartext.setSize(300, 400);
        frame.getContentPane().add(klartext);
        
        geheimtext = new JTextArea();
        geheimtext.setLocation(480, 200);
        geheimtext.setBackground(new Color (255,255,255));
        geheimtext.setText("geheim");
        geheimtext.setSize(300, 400);      
        frame.getContentPane().add(geheimtext); 
        
        //warum auch immer: erst durch dieses Label wird das frame erst richtig angezeigt
        schluss = new JLabel();
        frame.getContentPane().add(schluss);
        frame.setVisible(true);
        frame.setSize(800, 680);
  
  }  
}
 

Marco13

Top Contributor
Zeilenumbruch kann man mit JTextArea (Java 2 Platform SE 5.0) einschalten. Evtl. auch noch JTextArea (Java 2 Platform SE 5.0) setzen.

Scrollbalken... nach dem Muster
Java:
        // VORHER:
        klartext = new JTextArea();
        klartext.setLocation(20, 200);
        klartext.setBackground(new Color (255,255,255));
        klartext.setText("huii");
        klartext.setSize(300, 400);
        frame.getContentPane().add(klartext);
->
Java:
        // NACHHER:
        klartext = new JTextArea();
        JScrollPane klartextScrollPane = new JScrollPane(klartext);
        klartextScrollPane.setLocation(20, 200);
        klartext.setBackground(new Color (255,255,255));
        klartext.setText("huii");
        klartextScrollPane.setSize(300, 400);
        frame.getContentPane().add(klartextScrollPane);

BTW: Variablennamen (Zwischenablage, ChiffrierMethode... ) sollte man klein schreiben (chiffrierMethode...)
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
hannibalstgt Fehler bei JCOMBOBOX GUI Anzeige AWT, Swing, JavaFX & SWT 4
J Fehler bei jFame.setTitle() AWT, Swing, JavaFX & SWT 8
thor_norsk SpringBoot-Fehler AWT, Swing, JavaFX & SWT 7
J Ich kriege eine Fehler Messesage bei meinem Media Player AWT, Swing, JavaFX & SWT 8
H Fehler: Zum Ausführen dieser Anwendung benötigte JavaFX-Runtime-Komponenten fehlen AWT, Swing, JavaFX & SWT 44
S Fehler beim Öffnen weiterer FXML AWT, Swing, JavaFX & SWT 11
S JavaFX Fehler zwischen View und Controller bei MouseEvent (MVC) AWT, Swing, JavaFX & SWT 13
T ListView nach Erweiterung Fehler in CellFactory AWT, Swing, JavaFX & SWT 8
beli3ver JavaFX Anwendung startet nicht, kann den Fehler nicht finden (Exception in Application start method) AWT, Swing, JavaFX & SWT 1
J "Exception in thread "AWT-EventQueue-0"" Fehler AWT, Swing, JavaFX & SWT 3
parrot JavaFX Fehler AWT, Swing, JavaFX & SWT 4
H JavaFX JavaFX Import Fehler AWT, Swing, JavaFX & SWT 4
T Anderen Java Code durch Code kompilieren und Fehler in Label ausgeben AWT, Swing, JavaFX & SWT 5
M AWT Kann meinen Fehler beim ActionListener nicht finden AWT, Swing, JavaFX & SWT 5
Z Swing Wert aus Textfeld auslesen -- null Fehler AWT, Swing, JavaFX & SWT 4
A eine Fehler AWT, Swing, JavaFX & SWT 9
A Fehler beim Hintergrund AWT, Swing, JavaFX & SWT 17
L JavaFX Fehler beim setzen von Farben AWT, Swing, JavaFX & SWT 16
B JavaFX Text wird nicht angezeigt, kein Fehler AWT, Swing, JavaFX & SWT 2
W fillRect() in Schleife spukt nur Fehler aus AWT, Swing, JavaFX & SWT 3
S Fehler: Hauptklasse neon.Main konnte nicht gefunden oder geladen werden AWT, Swing, JavaFX & SWT 5
Tronert JavaFX Fehler beim Ändern der font-weight AWT, Swing, JavaFX & SWT 7
Tommy135 JavaFX JavaFX Fehler beim Scenewechsel AWT, Swing, JavaFX & SWT 23
V JavaFX Button Controller Fehler, trotz Erfolg in einem anderem Code? AWT, Swing, JavaFX & SWT 7
E Fehler bei Button AWT, Swing, JavaFX & SWT 1
L Unbekannter Fehler AWT, Swing, JavaFX & SWT 13
H JavaFX Kriege fehler beim Fenster wechseln AWT, Swing, JavaFX & SWT 7
I Fehler bei Alert AWT, Swing, JavaFX & SWT 6
J Fehler bei PixelColor erkennung AWT, Swing, JavaFX & SWT 4
T Fehler bei ActionEvent? AWT, Swing, JavaFX & SWT 3
V Fehler bei Würfelsimulator GUI AWT, Swing, JavaFX & SWT 2
Z GUI-Problem, finde meinen Fehler nicht! AWT, Swing, JavaFX & SWT 11
Seikuassi SWING - (Hoffentlicher) simpler Color-Fehler AWT, Swing, JavaFX & SWT 4
M Swing finde den fehler nicht AWT, Swing, JavaFX & SWT 9
A Fehler bei erstellen eines JTextFields AWT, Swing, JavaFX & SWT 2
D Unlogischer Fehler? AWT, Swing, JavaFX & SWT 2
L Eclipse Fehler besser zu verstehen!!! AWT, Swing, JavaFX & SWT 4
E Warum macht die einfache Animation einen kleinen Fehler? AWT, Swing, JavaFX & SWT 14
bluerob Fehler bei Wertübermittlung über KeyListener AWT, Swing, JavaFX & SWT 3
H GUI-Textausgabe Fehler AWT, Swing, JavaFX & SWT 5
S String is null Fehler AWT, Swing, JavaFX & SWT 2
P Swing GroupLayout() Fehler? AWT, Swing, JavaFX & SWT 3
J JMenuBar ist geaddet, aber nicht im Frame. Wo ist der Fehler? (inkl. Code) AWT, Swing, JavaFX & SWT 2
N Touchscreen-Scrollen, wo liegt der Fehler? AWT, Swing, JavaFX & SWT 3
N Fehler Inhalt von JTable wird gelöscht AWT, Swing, JavaFX & SWT 5
S Fehler beim Zweites 3D Bild AWT, Swing, JavaFX & SWT 2
L Fehler beim erstellen einer Tabelle mithilfe von 2d-Array AWT, Swing, JavaFX & SWT 3
M GEF tutorial Fehler finden AWT, Swing, JavaFX & SWT 4
S Grafik Fehler AWT, Swing, JavaFX & SWT 15
M Fehler bei Arrayübergabe an JComboBox AWT, Swing, JavaFX & SWT 10
J Fehler beim Einklappen eines Trees AWT, Swing, JavaFX & SWT 4
P 2D-Grafik Fehler beim Laden eines Bildes AWT, Swing, JavaFX & SWT 25
S LayoutManager Fehler gesucht 18.6.2011 AWT, Swing, JavaFX & SWT 4
C Fehler nur bei manchen Usern AWT, Swing, JavaFX & SWT 8
Screen Fehler bei Get-Methode für ArrayList AWT, Swing, JavaFX & SWT 8
K JFrame + KeyListener + Runnable = Fehler AWT, Swing, JavaFX & SWT 3
I Fehler bei JFileChooser AWT, Swing, JavaFX & SWT 2
K 2D-Grafik Fehler beim Farbe auslesen AWT, Swing, JavaFX & SWT 3
J Fehler beim Gif Datei öffnen AWT, Swing, JavaFX & SWT 2
J 2D-Grafik Fehler beim Überzeichnen von Linien AWT, Swing, JavaFX & SWT 11
E Swing Fehler nach Befüllen einer JTable mit gesetzem Rowsort?! AWT, Swing, JavaFX & SWT 10
P Swing Misteriöser Fehler JTable AWT, Swing, JavaFX & SWT 5
Y Swing JPasswordField Fehler AWT, Swing, JavaFX & SWT 14
A Swing Unknown Source Fehler AWT, Swing, JavaFX & SWT 9
N Fehler bei Grouplayout AWT, Swing, JavaFX & SWT 17
S ActionPerformed Fehler... AWT, Swing, JavaFX & SWT 9
C BufferedImage-Fehler? Falsches Bild wir gezeichnet AWT, Swing, JavaFX & SWT 5
A Tabellen Überschriften ändern -setColumnIdentifiers()- Fehler AWT, Swing, JavaFX & SWT 7
hdi Swing JTable: Fehler beim Nutzen von RowSorter#setRowFilter AWT, Swing, JavaFX & SWT 4
D Swing Verwirrender Fehler AWT, Swing, JavaFX & SWT 7
J Fehler in fillRoundRect AWT, Swing, JavaFX & SWT 2
D Probleme mit Spiel-Engine. Komische Fehler. AWT, Swing, JavaFX & SWT 5
W fehler jedoch ka wo AWT, Swing, JavaFX & SWT 14
F Fehler in der Startklasse AWT, Swing, JavaFX & SWT 13
A Fehler bei der Parametereingabe? AWT, Swing, JavaFX & SWT 16
P finde den Fehler im JTable nicht AWT, Swing, JavaFX & SWT 2
Spin Fehler in Vergleich AWT, Swing, JavaFX & SWT 6
K Swing: ContentPane von JDialog ist transparent (Fehler) AWT, Swing, JavaFX & SWT 10
Dragonfire ZoomImage flackert -> Fehler: repaint-Aufruf [gelöst] AWT, Swing, JavaFX & SWT 5
T Invalid Range - Fehler bei TableRowSorter / Tabelle AWT, Swing, JavaFX & SWT 17
DasDogma Fehler bei getText() AWT, Swing, JavaFX & SWT 10
I Fehler bei verschachtelten JScrollPanes AWT, Swing, JavaFX & SWT 2
M Fehler beim Zugriff von awt-KeyListener auf swt-Shell AWT, Swing, JavaFX & SWT 2
GilbertGrape Fehler bei HTML in JTextPane AWT, Swing, JavaFX & SWT 2
K Textfelder auslesen gibt immer Fehler AWT, Swing, JavaFX & SWT 2
D Fehler bei Button Array AWT, Swing, JavaFX & SWT 8
P Fehler beim Einlesen eines JTextFields AWT, Swing, JavaFX & SWT 2
G Viele Fehler beim zeichen AWT, Swing, JavaFX & SWT 5
M Fehler mit Jigloo AWT, Swing, JavaFX & SWT 3
M setColor mit Fehler cannot fiend symbol (java.awt.Color) AWT, Swing, JavaFX & SWT 2
Z habe code, habe fehler, habe keine lösung AWT, Swing, JavaFX & SWT 7
R JComboBox Fehler AWT, Swing, JavaFX & SWT 7
B NPE-Fehler AWT, Swing, JavaFX & SWT 11
A Fehler beim Auslesen aus einem Textfeld AWT, Swing, JavaFX & SWT 2
P JRadioButton in Schleife erstellen > wo liegt mein Fehler AWT, Swing, JavaFX & SWT 2
R setIcon löst Fehler aus AWT, Swing, JavaFX & SWT 4
B Durch Auslesen der Zwischenablage folgt Fehler im Excel AWT, Swing, JavaFX & SWT 2
spacegaier Fehler beim Aufrufen von Dialog aus ActionListener AWT, Swing, JavaFX & SWT 12
D Fehler bei JTable AWT, Swing, JavaFX & SWT 8
S TextField fehler AWT, Swing, JavaFX & SWT 3

Ähnliche Java Themen

Neue Themen


Oben