Hallo Leute
Ich arbeite an einem eher einfacherem Zeichenprogramm mit NetBeans.
Also meine Hauptfrage: Wie kann ich ein Panelhintergrund setzen auf dem ich dann auch Zeichnen kann?
Das JMenuItem paste (oder public void pastepic, hab es sowieso gekennzeichnet ) soll ein Hintergrund setzen.
Und jetzt zum Zweiten ich hab erst vor kurzem mit Java programmierung begonnen also hab ich den ganzen source code reingeschrieben. Falls ihr Tipps habt wie ich "schöner" schreiben könnte lasst es mich bitte wissen .
Nochmal bin nur ein anfänger erklärt auch bitte einfach .
So ich hoffe ihr könnt mir helfen bedanke mich auch schon im Vorraus
Ich arbeite an einem eher einfacherem Zeichenprogramm mit NetBeans.
Also meine Hauptfrage: Wie kann ich ein Panelhintergrund setzen auf dem ich dann auch Zeichnen kann?
Das JMenuItem paste (oder public void pastepic, hab es sowieso gekennzeichnet ) soll ein Hintergrund setzen.
Und jetzt zum Zweiten ich hab erst vor kurzem mit Java programmierung begonnen also hab ich den ganzen source code reingeschrieben. Falls ihr Tipps habt wie ich "schöner" schreiben könnte lasst es mich bitte wissen .
Nochmal bin nur ein anfänger erklärt auch bitte einfach .
So ich hoffe ihr könnt mir helfen bedanke mich auch schon im Vorraus
Java:
package Paint;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.Point;
import java.awt.Toolkit;
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 java.awt.image.BufferedImage;
import java.io.IOException;
import java.util.ArrayList;
import javax.imageio.ImageIO;
import javax.swing.*;
import static javax.swing.JFrame.EXIT_ON_CLOSE;
public class paint extends JPanel implements MouseListener, MouseMotionListener, ActionListener {
private JFrame jf = new JFrame("Draw");
private JPanel jp = new JPanel();
private JMenuBar jmb = new JMenuBar();
private JMenu thickness = new JMenu("Thickness"), data = new JMenu("Data"), colors = new JMenu("Colors"), pic = new JMenu("Pictures"), forms = new JMenu("Forms");
private JMenuItem ul = new JMenuItem("Ultralight"), light = new JMenuItem("Light"), med = new JMenuItem("Medium"), fat = new JMenuItem("Fat"), ud = new JMenuItem("Userdefined"),
save = new JMenuItem("Save"), open = new JMenuItem("Open"), del = new JMenuItem("Delete"),
pen = new JMenuItem("Pencil"), backg = new JMenuItem("Background"), paste = new JMenuItem("Paste"),
rect = new JMenuItem("Rect"), circ = new JMenuItem("Circle"), arc = new JMenuItem("Arc"), pic1 = new JMenuItem("pic");
private int x, y, thick = 5, form = 1;
private Color col = Color.BLACK, c = Color.WHITE;
private Image img = Toolkit.getDefaultToolkit().getImage("lala.jpg");
private ArrayList<Point> points = new ArrayList<Point>(37);
private Point p;
private Image pic12;
public void createFrame() {
jf.setDefaultCloseOperation(EXIT_ON_CLOSE);
jf.pack();
jf.setLocationRelativeTo(null);
jf.setJMenuBar(jmb);
jf.add(jp);
jmb.add(forms);
jmb.add(thickness);
jmb.add(data);
jmb.add(colors);
jmb.add(pic);
forms.add(rect);
forms.add(circ);
forms.add(arc);
forms.add(pic1);
thickness.add(ul);
thickness.add(light);
thickness.add(med);
thickness.add(fat);
thickness.add(ud);
data.add(save);
data.add(open);
data.add(del);
colors.add(pen);
colors.add(backg);
pic.add(paste);
jf.setVisible(true);
}
public void dragged() {
jp.addMouseMotionListener(new MouseMotionListener() {
@Override
public void mouseMoved(MouseEvent e) {
}
@Override
public void mouseDragged(MouseEvent e) {
p = new Point(e.getX(), e.getY());
System.out.println(p);
points.add(p);
Graphics g = ((JPanel) e.getComponent()).getGraphics();
g.setColor(col);
if (form == 1) {
g.fillRect(p.x, p.y, thick, thick);
} else if (form == 2) {
g.fillOval(p.x, p.y, thick, thick);
} else if (form == 3) {
g.fillArc(p.x, p.y, thick, thick, thick, thick);
//hier wollte ich versuchen dass man bilder zeichnet aber beachtet das nicht
} else if (form == 4) {
// try {
// pic12 = ImageIO.read(new File("lala.jpg"));
// } catch (Exception ex) {
// ex.getStackTrace();
// }
}
g.dispose();
}
});
}
// public void paintComponent(Graphics g2){
// g2.drawImage(pic12, p.x, p.y, pic12.getWidth(this),pic12.getHeight(this),this);
// }
// public void paintComponent(){
//
// g.setColor(col);
// if (form == 1) {
// g.fillRect(x, y, thick, thick);
// } else if (form == 2) {
// g.fillOval(x, y, thick, thick);
// } else if (form == 3) {
// g.fillArc(x, y, thick, thick, thick, thick);
// }
// else if(form == 4){
// }
//}
// public void draw() {
// Graphics g = jp.getGraphics();
// g.setColor(col);
// if (form == 1) {
// g.fillRect(x, y, thick, thick);
// } else if (form == 2) {
// g.fillOval(x, y, thick, thick);
// } else if (form == 3) {
// g.fillArc(x, y, thick, thick, thick, thick);
// }
// else if(form == 4){
// }
// }
public void ultral() {
ul.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent ae) {
thick = 5;
}
});
}
public void light1() {
light.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent ae) {
thick = 10;
}
});
}
public void medium() {
med.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent ae) {
thick = 15;
}
});
}
public void fat1() {
fat.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent ae) {
thick = 20;
}
});
}
public void userdefined() {
ud.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent ae) {
thick = Integer.parseInt(JOptionPane.showInputDialog("Type in the thickness"));
}
});
}
public void pencil() {
pen.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent ae) {
col = JColorChooser.showDialog(null, "Colorchooser", null);
}
});
}
public void background() {
backg.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent ae) {
c = JColorChooser.showDialog(null, "Colorchooser", null);
jp.setBackground(c);
}
});
}
public void drawRect() {
rect.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent ae) {
form = 1;
}
});
}
public void drawCircle() {
circ.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent ae) {
form = 2;
}
});
}
public void drawArc() {
arc.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent ae) {
form = 3;
}
});
}
public void drawPic() {
arc.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent ae) {
form = 4;
}
});
}
public void delete() {
del.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent ae) {
points.clear();
}
});
}
//hier fängt die hauptfrage an (EINER meiner versuche)
public void pastepic(){
paste.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent ae) {
paint();
}
});
}
public static BufferedImage load(String name){
try {
BufferedImage img = ImageIO.read(paint.class.getResourceAsStream(name));
return img;
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
public Bilder(){
setLayout(null);
setPreferredSize(new Dimension(800,600));
}
public void paint(){
Graphics g = jp.getGraphics();
Graphics2D g2d = (Graphics2D) g;
g2d.drawImage(load("lala.jpg"),0,0,null);
}
// und hier endet sie
public static void main(String[] args) {
paint obj = new paint();
obj.createFrame();
obj.dragged();
obj.ultral();
obj.light1();
obj.medium();
obj.fat1();
obj.userdefined();
obj.pencil();
obj.background();
obj.drawRect();
obj.drawCircle();
obj.delete();
obj.drawArc();
obj.drawPic();
obj.pastepic();
}
@Override
public void mouseClicked(MouseEvent me) {
}
@Override
public void mousePressed(MouseEvent me) {
}
@Override
public void mouseReleased(MouseEvent me) {
}
@Override
public void mouseEntered(MouseEvent me) {
}
@Override
public void mouseExited(MouseEvent me) {
}
@Override
public void mouseDragged(MouseEvent me) {
}
@Override
public void mouseMoved(MouseEvent me) {
}
@Override
public void actionPerformed(ActionEvent ae) {
}
}