JMenu + Farbe von Hintergrund

Status
Nicht offen für weitere Antworten.
R

rATs

Gast
hoihoi

erstens: ich bin anfänger und kenn mich nicht so aus :)

zweitens: ich brauch eure hilfe, weil ich das einfach nicht checke, ich hab schon etliches versucht, geht aber nie :(

ich will in einem Jmenu ( das bring ich zusammen^^) ein untermenü haben (kann ich auch) und jetzt will ich, dass wenn ich einen punkt anklicke im menü, z.B. "rot" , dass mein gezeichnetes objekt mit der farbe ausgefüllt wird, und ich habe keine Ahnung wie ich das anstellen soll

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


//@SuppressWarnings("unchecked")
public class GUITest extends JFrame implements ActionListener, TextListener, ItemListener
{

        static final long serialVersionUID = 0L;
        private JMenuBar menuBar   = new JMenuBar();
        private JMenu menuA        = new JMenu("MenuA", true);
        private JMenuItem mItemA1  = new JMenuItem("rot");
        private JMenuItem mItemA2  = new JMenuItem("green");
        private JMenuItem mItemA3  = new JMenuItem("blau");
        
        private JPanel panePanel    = new JPanel();
        private JPanel northPanel   = new JPanel();
        private MahlPanel mahlPanel = new MahlPanel();
        private JPanel southPanel   = new JPanel();

        private JLabel breiteLabel     = new JLabel("Breite: ");
        private TextField breiteField = new TextField("0", 8);
        private JLabel hoeheLabel      = new JLabel("Höhe: ");
        private TextField hoeheField  = new TextField("0", 8);

        private JButton paintButton = new JButton("Zeichne");
        private String[] objekte = {"Rechteck", "Oval"};
        private JComboBox comboBox = new JComboBox(objekte);
        
        private String[] listen_objects = {"FieldChange", "ButtonChange"};
        private JComboBox comboBox_lst = new JComboBox(listen_objects);
        
        private int listen_mode = 1;

    public GUITest()
    {
        super.setTitle("GUI Test");
        setFrameLocation(600, 300);
        addWindowListener(new GUITestWindowsListener());
        paintButton.addActionListener(this);
        
        breiteField.addTextListener(this);
        hoeheField.addTextListener(this);

        comboBox.addItemListener(this);
        comboBox_lst.addItemListener(this);

        northPanel.add(breiteLabel);
        northPanel.add(breiteField);
        northPanel.add(hoeheLabel);
        northPanel.add(hoeheField);
        southPanel.add(comboBox);
        southPanel.add(comboBox_lst);
        southPanel.add(paintButton);
        
        menuBar.add(menuA);
        menuA.add(mItemA1);
        menuA.addSeparator();
        menuA.add(mItemA2);
        menuA.addSeparator();
        menuA.add(mItemA3);
        menuA.addSeparator();
        
        mItemA1.addActionListener(this);
        mItemA2.addActionListener(this);
        mItemA3.addActionListener(this);

        panePanel.setLayout( new BorderLayout());
        panePanel.add(northPanel, BorderLayout.NORTH);
        panePanel.add(mahlPanel, BorderLayout.CENTER);
        panePanel.add(southPanel, BorderLayout.SOUTH);

        getContentPane().add(panePanel, BorderLayout.CENTER);
    }

    private void setFrameLocation(int frameWidth, int frameHeight) {
        setSize(frameWidth, frameHeight);
        Dimension screen = getToolkit().getScreenSize();
        setLocation((screen.width - frameWidth)/2, (screen.height - frameHeight)/2);
    }

    public static void main(String s[])
    {
        GUITest gUITest = new GUITest();
        gUITest.setVisible(true);
        gUITest.breiteField.requestFocusInWindow();
    }
    
    public void actionPerformed(ActionEvent e)
    {
      Object s = e.getSource();

      if(s == paintButton)
      {
              if(!hoeheField.getText().equals("0") || !breiteField.getText().equals("0"))
              {
                 mahlPanel.set_koordinaten(hoeheField.getText(), breiteField.getText());
              }

          mahlPanel.draw();
      }
    }
    
    public void textValueChanged(TextEvent event)
    {
       if (listen_mode == 1)
       {
           if(!hoeheField.getText().equals("0") || !breiteField.getText().equals("0"))
           {
              mahlPanel.set_koordinaten(hoeheField.getText(), breiteField.getText());
           }
           mahlPanel.draw();
       }
    }
    
    
      public void itemStateChanged(ItemEvent e)
      {
         Object s = e.getSource();

         if (s == comboBox)
         {
            mahlPanel.set_ob((String)comboBox.getSelectedItem());
         }
         
         if (s == comboBox_lst)
         {
            if (comboBox_lst.getSelectedItem() == "FieldChange")
            {
               listen_mode = 1;
            }
            else
            {
               listen_mode = 0;
            }
         }

      }
}

//************************************************************************
//Class for handling of window events
//************************************************************************
class GUITestWindowsListener extends WindowAdapter {

        public void windowClosing(WindowEvent e)
        {
                Window w = e.getWindow();
                w.setVisible(false);
                w.dispose();
                System.exit(0);
        }
}


//************************************************************************
//Class for painting
//************************************************************************
class MahlPanel extends JPanel
{

  static final long serialVersionUID = 0L;
  int breite, höhe;
  String ob="Rechteck";


  public MahlPanel() {
        super(true);
  }

  public void paint(Graphics graphics) {

        Graphics2D g = (Graphics2D)graphics;
        g.setRenderingHints(new RenderingHints(RenderingHints.KEY_ANTIALIASING,
                           RenderingHints.VALUE_ANTIALIAS_ON));

        Dimension dim = getSize();
        g.setColor(Color.BLACK);
        g.drawRect(0,0, dim.width-1, dim.height-1);
        g.setColor(Color.WHITE);
        g.fill(new Rectangle2D.Double(1, 1, dim.width - 2, dim.height - 2));
  }
  public void set_ob(String ob){

   this.ob = ob;

 }

  public void set_koordinaten(String x, String y){

    höhe  = Integer.parseInt(x);
    breite = Integer.parseInt(y);


  }

  public void draw(){
    Graphics2D g = (Graphics2D)getGraphics();
    g.setRenderingHints(new RenderingHints(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON));
    Dimension dim = getSize();

    if(ob.equals("Oval"))
      g.drawOval((dim.width/2-(breite/2)), dim.height/2-(höhe/2), breite, höhe);

    if(ob.equals("Rechteck"))
      g.drawRect((dim.width/2-(breite/2)), dim.height/2-(höhe/2), breite, höhe);
  }

}

ich hoffe ihr habts da eine lösung, ich raste langsam aus weil bei dem java nix geht -.-
 

MPW

Top Contributor
rATs hat gesagt.:
hoihoi

erstens: ich bin anfänger und kenn mich nicht so aus :)

zweitens: ich brauch eure hilfe, weil ich das einfach nicht checke, ich hab schon etliches versucht, geht aber nie :(

hoffe ihr habts da eine lösung, ich raste langsam aus weil bei dem java nix geht -.-

Aha, keine Ahnung, aber immer erstmal alles auf Java schieben, das ist die richtige Einstellung!


Also, ich bin aus deiner actionListener Methode nicht so wirklich schlau geworden, wo genau setzt du denn die Farbe, mir ist kein ColorObjekt ueber den Weg gelaufen?

Wie ich das machen wuerde:

Mach im Menue einen Eintrag farbewaehlen
Wenn dieser angeklickt wird, oeffnest du einen ColorChooser, dort kann der user bequem alles einstellen und anschliessend setzt du die Farbe.
 

Leroy42

Top Contributor
Eine andere Frage
Code:
        private JMenuItem mItemA1  = new JMenuItem("rot"); 
        private JMenuItem mItemA2  = new JMenuItem("green"); 
        private JMenuItem mItemA3  = new JMenuItem("blau");

Warum hast du dir solche merkwürdigen Namen ausgedacht? Da weißt
du doch gar nicht, welche Variable was bedeutet :shock:

Warum nicht sowas wie
Code:
        private JMenuItem setRot  = new JMenuItem("rot"); 
        private JMenuItem setGrün  = new JMenuItem("grün"); 
        private JMenuItem setBlau  = new JMenuItem("blau");
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
Z JMenu und JMenuItem: MouseOver-Farbe ändern AWT, Swing, JavaFX & SWT 9
ExceptionOfExpectation JMenu, setMnemonic(Char k) bringt keine Wirkung AWT, Swing, JavaFX & SWT 8
H Swing JMenu aufgeklappt oder nicht - Wie frage ich das ab? AWT, Swing, JavaFX & SWT 5
D Mit Jmenu neue JFrame öffnen AWT, Swing, JavaFX & SWT 2
MaxG. Swing JMenu einen Listener Hinzufügen AWT, Swing, JavaFX & SWT 25
Y Backgroundcolor JMenu AWT, Swing, JavaFX & SWT 2
D Merkwürdiges Verhalten vom JMenu AWT, Swing, JavaFX & SWT 4
X JMenu Menu-Bar ausrichtung ändern im Programm AWT, Swing, JavaFX & SWT 0
S AWT JTextFields durch Array im JMenu erzeugen? AWT, Swing, JavaFX & SWT 19
E JMenu erscheint nach RDP-Verbindung auf falschem Desktop AWT, Swing, JavaFX & SWT 1
S Swing JMenu löscht auf panel gezeichnetes AWT, Swing, JavaFX & SWT 3
llabusch Prüfen ob JMenu leer ist & löschen AWT, Swing, JavaFX & SWT 1
3 Swing Vertikaler Separator zwischen JMenu's AWT, Swing, JavaFX & SWT 2
S JMenu unter JPanel versteckt AWT, Swing, JavaFX & SWT 5
S jMenu wird nicht angezeigt AWT, Swing, JavaFX & SWT 3
K Swing JMenu und ActionListener AWT, Swing, JavaFX & SWT 4
T JMenu reagiert auf F-Taste AWT, Swing, JavaFX & SWT 6
M JMenuBar, JMenu, JMenuItem wird nicht angezeigt AWT, Swing, JavaFX & SWT 16
Jagson Mit JMenu auf jDialog zurück? Wie? AWT, Swing, JavaFX & SWT 8
Kenan89 JMenu Fragen AWT, Swing, JavaFX & SWT 5
B Swing JMenu zwischen anderen Componenten AWT, Swing, JavaFX & SWT 4
R JMenu aus Ordnern AWT, Swing, JavaFX & SWT 4
P JMenu aus Dateistruktur AWT, Swing, JavaFX & SWT 2
I JMenu AWT, Swing, JavaFX & SWT 5
M Swing JMenu verdeckt durch Komponente (aber kein AWT und Swing mix!?) AWT, Swing, JavaFX & SWT 3
frankred Swing JMenu verschwindet nicht beim klicken ausserhalb des JMenu! AWT, Swing, JavaFX & SWT 4
F JMenu auf JPanel AWT, Swing, JavaFX & SWT 5
E Swing JMenu in GUI einbinden AWT, Swing, JavaFX & SWT 5
S Probleme mit JMenu und JMenuItem AWT, Swing, JavaFX & SWT 2
E JMenu übersetzen AWT, Swing, JavaFX & SWT 9
W JMenu wird vom JPanel ständig überzeichnet... Abhilfe? AWT, Swing, JavaFX & SWT 3
P JMenu-Erweiterung in externer Datei AWT, Swing, JavaFX & SWT 5
T Swing JMenu als Button behandeln AWT, Swing, JavaFX & SWT 4
T Swing jMenu AWT, Swing, JavaFX & SWT 6
R JMenu in JToolBar AWT, Swing, JavaFX & SWT 6
T Swing JMenu falsch positioniert AWT, Swing, JavaFX & SWT 2
M JMenu teilweise unter einer JComponent AWT, Swing, JavaFX & SWT 4
Developer_X Swing JMenu Bug gefunden AWT, Swing, JavaFX & SWT 5
D Swing JMenu wieder schließen lassen AWT, Swing, JavaFX & SWT 7
E Swing Einfache Frage zu JMenu AWT, Swing, JavaFX & SWT 4
hdi Welche Klasse + Listener für JMenu AWT, Swing, JavaFX & SWT 2
A JMenu Bug? AWT, Swing, JavaFX & SWT 12
J JMenu unterschiedliche Background einstellen AWT, Swing, JavaFX & SWT 5
C JMenu bzw. JButton mit URL versehen AWT, Swing, JavaFX & SWT 2
G ActionListener auf JMenu funktioniert nicht AWT, Swing, JavaFX & SWT 4
X JMenu AWT, Swing, JavaFX & SWT 2
D Abfrageproblem bei JMenu mit Icon AWT, Swing, JavaFX & SWT 2
Ernesto95 Programmabsturz beim Einbinden eines JMenu AWT, Swing, JavaFX & SWT 18
P jMenu ohne Menubar - Jigloo zeigts AWT, Swing, JavaFX & SWT 2
S JMenu und ActionListener per Schleife erzeugen AWT, Swing, JavaFX & SWT 3
G Scrollbares JMenu AWT, Swing, JavaFX & SWT 4
A Bei Klick auf disabled JMenuItem JMenu nicht schließen AWT, Swing, JavaFX & SWT 2
G JMenu problem mit der Breite von einer JCheckBox AWT, Swing, JavaFX & SWT 2
V JMenu und die Tabs von JTabbedFrame sind auf einmal schwarz AWT, Swing, JavaFX & SWT 3
H JMenu wird leider unterhalb! der CanvasFläche dargestellt AWT, Swing, JavaFX & SWT 5
X Swing: Bilder überlagern JMenu AWT, Swing, JavaFX & SWT 4
T ImageIcon als Seperator im Jmenu AWT, Swing, JavaFX & SWT 8
padde479 JMenu mnemonic AWT, Swing, JavaFX & SWT 3
N JMenu und JPanel AWT, Swing, JavaFX & SWT 5
P JMenu / JMenuItem durch Rekursion Icons entfernen AWT, Swing, JavaFX & SWT 4
B 1 JMenu in Mehrere JMenus AWT, Swing, JavaFX & SWT 2
G Canvas, JMenu, und BufferStrategy AWT, Swing, JavaFX & SWT 2
D JMenu -> Accelerator AWT, Swing, JavaFX & SWT 2
I JMenu(Item) und FocusListener AWT, Swing, JavaFX & SWT 3
T JMenu/JMenuItem Component auf der geaddet wurde AWT, Swing, JavaFX & SWT 16
G JMenu About ohne JMenuItem AWT, Swing, JavaFX & SWT 11
M JMenu verschwindet unter ScrollPane AWT, Swing, JavaFX & SWT 3
D Schriftfarbe ändern (JFrame, JMenu etc) AWT, Swing, JavaFX & SWT 3
K JMenu wird nicht angezeigt AWT, Swing, JavaFX & SWT 2
I JMenu wird nicht dargestellt AWT, Swing, JavaFX & SWT 12
H JMenu soll "offen bleiben" AWT, Swing, JavaFX & SWT 3
M JMenuBar - JMenu mit Tastenkombination aufrufen / anzeigen AWT, Swing, JavaFX & SWT 8
redztripe Haken in JMenu setzen? AWT, Swing, JavaFX & SWT 8
G Icon zu JMenu AWT, Swing, JavaFX & SWT 3
M JMenu auf JComponent? AWT, Swing, JavaFX & SWT 10
G JMenu - neuer Frame AWT, Swing, JavaFX & SWT 2
X Verschwinden des JMenu unterbinden AWT, Swing, JavaFX & SWT 3
R JMenu copy Focus-Problem AWT, Swing, JavaFX & SWT 2
E JTextArea überlagert JMenu AWT, Swing, JavaFX & SWT 2
D JMenu spinnt AWT, Swing, JavaFX & SWT 7
B Alle jMenu und JMenuItem in einem Array AWT, Swing, JavaFX & SWT 4
R JMenu einträge werden überdeckt AWT, Swing, JavaFX & SWT 3
T JMenu erscheint nicht richtig AWT, Swing, JavaFX & SWT 6
G JMenu Info-Fenster ganz Rechts AWT, Swing, JavaFX & SWT 5
H JMenu zuklappen AWT, Swing, JavaFX & SWT 7
K JMenu Aktionen AWT, Swing, JavaFX & SWT 3
H JavaFX PixelWriter.setColor setzt Farbe nicht AWT, Swing, JavaFX & SWT 2
F Progressbar Farbe AWT, Swing, JavaFX & SWT 6
jojoge Wie erstelle ich runde Buttons mit Farbe? AWT, Swing, JavaFX & SWT 1
Kotelettklopfer Frame ändert Farbe nicht AWT, Swing, JavaFX & SWT 12
Hatsi09 GUI Input Farbe ändern AWT, Swing, JavaFX & SWT 0
L Swing Button Farbe ändern/wechseln AWT, Swing, JavaFX & SWT 2
B JavaFX Farbe eines Quadrates in einer separaten Klasse ändern AWT, Swing, JavaFX & SWT 4
L AWT Ändern der Farbe eines BufferedImage mit Farbähnlichkeit AWT, Swing, JavaFX & SWT 5
sascha-sphw JavaFX ListCell höhe verändert sich beim ändern der Text-Farbe AWT, Swing, JavaFX & SWT 14
F Drag&Drop mit Transparenter Farbe bei PNG AWT, Swing, JavaFX & SWT 0
V Swing für jedes Kästchen eine eigene Farbe AWT, Swing, JavaFX & SWT 2
Drachenbauer Swing Wie ändere ich die Farbe der Konturen von jButton und jCombobox? AWT, Swing, JavaFX & SWT 18
Drachenbauer Swing Wie ändere ich die helle geklickt-Farbe von einem JButton? AWT, Swing, JavaFX & SWT 4
H JFreeChart BarDiagramm Balken der gleichen Serie unterschiedliche Farbe zuordnen AWT, Swing, JavaFX & SWT 2

Ähnliche Java Themen

Neue Themen


Oben