F
Fenixx
Gast
Hallo zusammen,
ich möchte sehr gerne ein kleines Malprogramm schreiben. Dabei sollte die Anwendung wie folgt aufgebaut sein:
- Kopf: Eine kleine Toolbar für die Auswahl verschiedener Funktionen
- Mitte / Rest: Malfläche
Hierbei habe ich zwei Panels verwendet, um den Bereich dafür aufzuteilen. Zu Beginn wird die Toolbar und die Malfläche korrekt angezeigt. Wenn der Benutzer nun jedoch auf der Malfläche malt, verschwindet die Toolbar, indem die Malfläche die Toolbar überlappt.
Problem: Wie kann ich es bewerkstelligen, dass die Malfläche in dem Malpanel angezeigt wird und die Toolbar folglich nicht überlappt wird?
Mein Code:
Für ein Codebeispiel wäre ich extrem dankbar.
Im Voraus vielen Dank.
ich möchte sehr gerne ein kleines Malprogramm schreiben. Dabei sollte die Anwendung wie folgt aufgebaut sein:
- Kopf: Eine kleine Toolbar für die Auswahl verschiedener Funktionen
- Mitte / Rest: Malfläche
Hierbei habe ich zwei Panels verwendet, um den Bereich dafür aufzuteilen. Zu Beginn wird die Toolbar und die Malfläche korrekt angezeigt. Wenn der Benutzer nun jedoch auf der Malfläche malt, verschwindet die Toolbar, indem die Malfläche die Toolbar überlappt.
Problem: Wie kann ich es bewerkstelligen, dass die Malfläche in dem Malpanel angezeigt wird und die Toolbar folglich nicht überlappt wird?
Mein Code:
Code:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.awt.geom.*;
import java.awt.image.*;
public class PaintProgramm extends JApplet implements MouseMotionListener
{
BufferedImage bi;
Graphics2D big2;
int x, y;
boolean zurueck = true;
//Toolbar
JPanel toolbar = new JPanel();
//Malfläche
JPanel malflaeche = new JPanel();
public void init()
{
toolbar.setBackground(Color.BLUE);
Container contentPane = getContentPane();
JToolBar tb = new JToolBar();
JButton cutButton = new JButton(new ImageIcon("D:\\Workspaces\\GUI\\Icons\\ausschneiden.gif"));
JButton copyButton = new JButton(new ImageIcon("D:\\Workspaces\\GUI\\Icons\\kopieren.jpg"));
JButton saveButton = new JButton(new ImageIcon("D:\\Workspaces\\GUI\\Icons\\speichern.jpg"));
JButton deleteButton = new JButton(new ImageIcon("D:\\Workspaces\\GUI\\Icons\\löschen.jpg"));
JButton clipboardButton = new JButton(new ImageIcon("D:\\Workspaces\\GUI\\Icons\\in_die_zwischenablage"));
tb.add(cutButton);
tb.add(copyButton);
tb.add(saveButton);
tb.add(deleteButton);
tb.add(clipboardButton);
toolbar.add(tb, BorderLayout.NORTH);
contentPane.add(toolbar, BorderLayout.NORTH);
malflaeche.setBackground(new java.awt.Color(210, 255, 255));
malflaeche.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseMoved(java.awt.event.MouseEvent evt) {
}
});
malflaeche.addMouseMotionListener(new java.awt.event.MouseMotionAdapter() {
public void mouseDragged(java.awt.event.MouseEvent evt) {
}
});
getContentPane().add(malflaeche, BorderLayout.SOUTH);
bi = (BufferedImage)createImage(1250, 1074);
big2 = bi.createGraphics();
addMouseMotionListener(this);
}
public void paint(Graphics g)
{
Graphics2D g2 = (Graphics2D)g;
g2.drawImage(bi, null, 0, 0);
}
public void mouseDragged(MouseEvent ev)
{
if (zurueck)
{
zurueck = false;
x = ev.getX() - 1;
y = ev.getY();
}
//Zeichen
big2.draw(new Line2D.Double(x, y, ev.getX(), ev.getY()));
x = ev.getX();
y = ev.getY();
//Neu zeichnen
repaint();
}
public void mouseMoved(MouseEvent ev)
{
zurueck = true;
}
}
Für ein Codebeispiel wäre ich extrem dankbar.
Im Voraus vielen Dank.