hallo
also ich habe ein Problem bezüglich Paint und PaintComponent
Folgendes ist eine kleines Zeichen"programm" - das halt immer einen strich in der gewünschten Farbe beim mausdruck malt
das problem: Ich will anfangs ein Rechteck - und auch andere Sachen VORGEMALT haben
ABER - alle Sachen die hier in paintComponent() stehen werden nicht gezeichnet.... - auch nicht nach löschen(->repaint())
ich dachte paint() ruft dann paintComponent auf.. und in paintComponent wird dann gezeichnet - zumindest bei repaint müsste es doch klappen...
ich verstehs nicht...
danke schon im voraus - mfg andrej
also ich habe ein Problem bezüglich Paint und PaintComponent
Folgendes ist eine kleines Zeichen"programm" - das halt immer einen strich in der gewünschten Farbe beim mausdruck malt
das problem: Ich will anfangs ein Rechteck - und auch andere Sachen VORGEMALT haben
ABER - alle Sachen die hier in paintComponent() stehen werden nicht gezeichnet.... - auch nicht nach löschen(->repaint())
Code:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
import javax.swing.border.*;
public class windowkrizzler extends JFrame implements MouseMotionListener,ActionListener,ChangeListener {
JButton xxx = new JButton("Löschen");
int X=0;
int Y=0;
int X_alt=0;
int Y_alt=0;
JSlider R=new JSlider(0,150,0);
JSlider G=new JSlider(0, 150, 0);
JSlider B=new JSlider(0, 150, 0);
int r=0;
int g=0;
int b=0;
Color farbe = new Color(0,0,0);
public windowkrizzler(){
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setTitle("Windows XP LookAndFeel");
Container c= getContentPane();
c.setLayout(new FlowLayout(FlowLayout.CENTER));
c.add(xxx);
xxx.addActionListener(this);
this.addMouseMotionListener(this);
c.add(R);
c.add(G);
c.add(B);
R.addChangeListener(this);
G.addChangeListener(this);
B.addChangeListener(this);
c.setBackground(Color.GRAY);
R.setBounds(10, 20, 200,10);
G.setBounds(10,40, 200, 10);
B.setBounds(10, 60, 200,10);
R.setBackground(Color.GRAY);
G.setBackground(Color.GRAY);
B.setBackground(Color.GRAY);
R.setBorder(new TitledBorder("Rot"));
G.setBorder(new TitledBorder("Grün"));
B.setBorder(new TitledBorder("Blau"));
}
public void stateChanged(ChangeEvent e){
r = R.getValue();
g = G.getValue();
b = B.getValue();
Graphics gerri = this.getGraphics();
Color farbe = new Color(r,g,b);
gerri.setColor(farbe);
gerri.fillRect(50,500, 30,30);
}
public void paint(){}
public void paintComponent(Graphics x){
x.fillRect(50,500, 30,30);
}
public void mouseMoved(MouseEvent a){
X=0;
Y=0;
}
public void mouseDragged(MouseEvent q){
X_alt=X;
Y_alt=Y;
X=q.getX();
Y=q.getY();
if(X_alt==0 && Y_alt==0){
X_alt=q.getX();
Y_alt=q.getY();
}
Graphics blatt = this.getGraphics();
Color farbe = new Color(r,g,b);
blatt.setColor(farbe);
blatt.drawLine(X_alt, Y_alt, X,Y);
}
public void actionPerformed(ActionEvent e){
if(e.getSource()==xxx)
{
repaint();
}
}
public static void main(String parameterx[]){
windowkrizzler grafik = new windowkrizzler();
grafik.setSize(1000,600);
grafik.show();
}
}
ich dachte paint() ruft dann paintComponent auf.. und in paintComponent wird dann gezeichnet - zumindest bei repaint müsste es doch klappen...
ich verstehs nicht...
danke schon im voraus - mfg andrej