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
ich hoffe ihr habts da eine lösung, ich raste langsam aus weil bei dem java nix geht -.-
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 -.-