Hallo liebe Forumsnutzer,
ich bin komplett neu hier und weiß leider nicht mehr weiter.
Ich habe ein Malprogramm geschieben das auch so weit und gut OK ist.
Habe auch im Forum schon nach Lösungen gesucht aber diese haben mich eher weniger weitergebracht.
Bin auch noch neu in der Programierung mit Java aber hoffe der Code ist trotzdem leserlich
Meine Probleme sind jetzt das ich wenn ich das Fenster vergrößere oder verkleinere das Bild gelöscht wird bzw. verschwindet! Wie kann ich das verhindern?
Außerdem würde ich es auch wie im Menü schon vorgesehen von mir auch abspeichern können auch da weiß ich ncht wie und habe auch kein Anstz. :bahnhof:
Wäre echt super wenn sich hier einer melden ann der mir Helfen kann verzweifel noch wegen dem Problem.
Bin für jede hilfe offen am liebsten wäre mir eine kleine Code ausschnitt damit ich es mir auh ableiten kann aber nehme jede hilfe an.
lg.Alex
Und das ist mein Code:
ich bin komplett neu hier und weiß leider nicht mehr weiter.
Ich habe ein Malprogramm geschieben das auch so weit und gut OK ist.
Habe auch im Forum schon nach Lösungen gesucht aber diese haben mich eher weniger weitergebracht.
Bin auch noch neu in der Programierung mit Java aber hoffe der Code ist trotzdem leserlich
Meine Probleme sind jetzt das ich wenn ich das Fenster vergrößere oder verkleinere das Bild gelöscht wird bzw. verschwindet! Wie kann ich das verhindern?
Außerdem würde ich es auch wie im Menü schon vorgesehen von mir auch abspeichern können auch da weiß ich ncht wie und habe auch kein Anstz. :bahnhof:
Wäre echt super wenn sich hier einer melden ann der mir Helfen kann verzweifel noch wegen dem Problem.
Bin für jede hilfe offen am liebsten wäre mir eine kleine Code ausschnitt damit ich es mir auh ableiten kann aber nehme jede hilfe an.
lg.Alex
Und das ist mein Code:
Java:
package paint;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.event.MouseMotionListener;
import javax.swing.ButtonGroup;
import javax.swing.JCheckBoxMenuItem;
import javax.swing.JColorChooser;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JPanel;
import javax.swing.JRadioButton;
public class PaintProgram extends JFrame implements ActionListener, MouseListener, MouseMotionListener {
private Integer size = 5;
private JMenuBar menuBar;
private JMenu menu;
private JMenu menuPenType;
private JMenu menuColor;
private JMenuItem[] menuItemFile = new JMenuItem[4];
private JRadioButton[] RadioButtonColor = new JRadioButton[6];
private JRadioButton RadioButtonOval = new JRadioButton();
private JRadioButton RadioButtonRect = new JRadioButton();
private JCheckBoxMenuItem rubber = new JCheckBoxMenuItem();
private JColorChooser colorChooser = new JColorChooser();
ButtonGroup groupPen = new ButtonGroup();
ButtonGroup groupColor = new ButtonGroup();
private JComboBox sizeList;
private JPanel paintingSurface = new JPanel();
private Graphics pen;
private Color penColor = Color.black;
private Color colorSave;
private String[] listText = {
"1",
"2",
"4",
"6",
"8",
"10",
"12",
"13",
"14",
"15",
"16",
"18",
"20",
"22",
"24",
"26",
"28",
"32",
"36",
"40",
"44",
"48",
"54",
"60",
"66",
"72",
"80",
"88"
};
public PaintProgram() {
super("Malprogramm");
menuBar = new JMenuBar();
menu = new JMenu("Datei");
menuItemFile[0] = new JMenuItem("Öffnen");
menuItemFile[1] = new JMenuItem("Speichern");
menuItemFile[2] = new JMenuItem("Neu");
menuItemFile[3] = new JMenuItem("Ende");
menuColor = new JMenu("Farbe");
RadioButtonColor[0] = new JRadioButton("Schwarz");
RadioButtonColor[1] = new JRadioButton("Blau");
RadioButtonColor[2] = new JRadioButton("Rot");
RadioButtonColor[3] = new JRadioButton("Grün");
RadioButtonColor[4] = new JRadioButton("Gelb");
RadioButtonColor[5] = new JRadioButton("Weitere Farben");
RadioButtonColor[0].setSelected(true);
menuPenType = new JMenu("Stiftart");
RadioButtonOval = new JRadioButton("Rund");
RadioButtonRect = new JRadioButton("Eckig");
RadioButtonOval.setSelected(true);
rubber = new JCheckBoxMenuItem("Radiergummi");
rubber.addActionListener(this);
sizeList = new JComboBox(listText);
sizeList.setEditable(true);
sizeList.addActionListener(this);
for (int i = 0; i < 4; i++) {
menu.add(menuItemFile[i]);
menuItemFile[i].addActionListener(this);
}
for (int i = 0; i < 6; i++) {
menuColor.add(RadioButtonColor[i]);
RadioButtonColor[i].addActionListener(this);
groupColor.add(RadioButtonColor[i]);
}
menuPenType.add(RadioButtonOval);
groupPen.add(RadioButtonOval);
RadioButtonOval.addActionListener(this);
menuPenType.add(RadioButtonRect);
groupPen.add(RadioButtonRect);
RadioButtonRect.addActionListener(this);
menuBar.add(menu);
menuBar.add(menuColor);
menuBar.add(menuPenType);
menuBar.add(sizeList);
menuBar.add(rubber);
paintingSurface.setBackground(Color.white);
paintingSurface.addMouseListener(this);
paintingSurface.addMouseMotionListener(this);
String i = (String)sizeList.getSelectedItem();
size = Integer.parseInt((String)i);
setJMenuBar(menuBar);
setContentPane(paintingSurface);
}
public void actionPerformed(ActionEvent e) {
Object source = e.getSource();
if (source == menuItemFile[2]) {
paintingSurface.setBackground(Color.white);
repaint();
}
else if (source == menuItemFile[3]) {
System.exit(0);
}
else if (source == sizeList) {
String i = (String)sizeList.getSelectedItem();
size = Integer.parseInt((String)i);
}
else if (source == RadioButtonColor[0]) {
penColor = Color.black;
}
else if (source == RadioButtonColor[1]) {
penColor = Color.blue;
}
else if (source == RadioButtonColor[2]) {
penColor = Color.red;
}
else if (source == RadioButtonColor[3]) {
penColor = Color.green;
}
else if (source == RadioButtonColor[4]) {
penColor = Color.yellow;
}
else if (source == RadioButtonColor[5]) {
penColor = JColorChooser.showDialog(RadioButtonColor[5], "Farbe", null);
}
else if (source == rubber) {
if (rubber.isSelected()) {
colorSave = penColor;
penColor = Color.white;
}
else {
penColor = colorSave;
}
}
}
public void mouseDragged(MouseEvent e) {
paint(e.getX(), e.getY());
}
public void mouseClicked(MouseEvent e) {
paint(e.getX(), e.getY());
}
public void mouseMoved(MouseEvent e) {
}
public void mousePressed(MouseEvent e) {
}
public void mouseReleased(MouseEvent e) {
}
public void mouseEntered(MouseEvent e) {
}
public void mouseExited(MouseEvent e) {
}
public void paint(int x, int y) {
pen = paintingSurface.getGraphics();
pen.setColor(penColor);
if (RadioButtonOval.isSelected()) {
pen.fillOval(x - size / 2, y - size / 2, size, size);
}
else {
pen.fillRect(x - size / 2, y - size / 2, size, size);
}
}
public static void main(String[] args) {
PaintProgram frame = new PaintProgram();
frame.setSize(600, 400);
frame.setLocationRelativeTo(null);
frame.setDefaultCloseOperation(EXIT_ON_CLOSE);
frame.setVisible(true);
}
}