Program ma działać a la paint. Prawie działa. Nie rozumiem czemu dorysowywuje w lewym górnym rogu panelu p2 ikonki naciśnięte. Proszę więc o pomoc. Jako, że dopiero zaczynam przygodę z java program zapewne jest jak to mówią nieelegancki.
Z góry dziękuję za wszelkie podpowiedzi.
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.GraphicsConfiguration;
import java.awt.HeadlessException;
import java.awt.Point;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.AdjustmentEvent;
import java.awt.event.AdjustmentListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.event.MouseMotionListener;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JColorChooser;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JToolBar;
public class Doda extends JFrame implements WindowListener, ActionListener,
ItemListener, KeyListener, MouseListener,MouseMotionListener, AdjustmentListener {
static Doda a;
JToolBar bar;
JPanel p1, p2;
Point startPoint, endPoint, point1, point2;
JButton b1, b2, b3, b4, b5, B;
boolean czy1=false, czy2=false, czy3=false, czy4=false, czy5=false;
Color color, col;
public Doda() throws HeadlessException {
// TODO Auto-generated constructor stub
setSize(1000,700);
setVisible(true);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setLayout(new BorderLayout());
p1= new JPanel();
p2= new MyPanel();
add(BorderLayout.NORTH, p1);
p1.setSize(1000, 100);
add(BorderLayout.CENTER, p2);
bar = new JToolBar();
p1. add (bar);
p1.setBackground(Color.GRAY);
b1 = new JButton(new ImageIcon("im.JPG"));
bar.add(b1);
b1.setToolTipText("linia");
b1.addActionListener(this);
b2 = new JButton(new ImageIcon("im.JPG"));
bar.add(b2);
b2.setToolTipText("linia");
b2.addActionListener(this);
b3 = new JButton(new ImageIcon("im.JPG"));
bar.add(b3);
b3.setToolTipText("linia");
b3.addActionListener(this);
b4 = new JButton(new ImageIcon("im.JPG"));
bar.add(b4);
b4.setToolTipText("linia");
b4.addActionListener(this);
b5 = new JButton(new ImageIcon("im.JPG"));
bar.add(b5);
b5.setToolTipText("linia");
b5.addActionListener(this);
B=new JButton("KOLOR");
//Anonimowa klasa wewnetrzna
B.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
col=color;
color=JColorChooser.showDialog(null, "wybierz kolor", color);
if(color==null)color=col;
}
});
p1.add(B);
addMouseListener(this);
}
public Doda(GraphicsConfiguration arg0) {
super(arg0);
// TODO Auto-generated constructor stub
}
public Doda(String arg0) throws HeadlessException {
super(arg0);
// TODO Auto-generated constructor stub
}
public Doda(String arg0, GraphicsConfiguration arg1) {
super(arg0, arg1);
// TODO Auto-generated constructor stub
}
@Override
public void adjustmentValueChanged(AdjustmentEvent arg0) {
// TODO Auto-generated method stub
}
@Override
public void mouseClicked(MouseEvent arg0) {
// TODO Auto-generated method stub
}
@Override
public void mouseEntered(MouseEvent arg0) {
// TODO Auto-generated method stub
}
@Override
public void mouseExited(MouseEvent arg0) {
// TODO Auto-generated method stub
}
@Override
public void mousePressed(MouseEvent e) {
// TODO Auto-generated method stub
startPoint = new Point(e.getPoint());
}
@Override
public void mouseReleased(MouseEvent e) {
// TODO Auto-generated method stub
endPoint = new Point(e.getPoint());
p2.repaint();
}
@Override
public void keyPressed(KeyEvent arg0) {
// TODO Auto-generated method stub
}
@Override
public void keyReleased(KeyEvent arg0) {
// TODO Auto-generated method stub
}
@Override
public void keyTyped(KeyEvent arg0) {
// TODO Auto-generated method stub
}
@Override
public void itemStateChanged(ItemEvent arg0) {
// TODO Auto-generated method stub
}
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
if(e.getSource() == b1){
czy1=true;
czy2=false;
czy3=false;
czy4=false;
czy5=false;
}
if(e.getSource() == b2){
czy1=false;
czy2=true;
czy3=false;
czy4=false;
czy5=false;
}
if(e.getSource() == b3){
czy1=false;
czy2=false;
czy3=true;
czy4=false;
czy5=false;
}
if(e.getSource() == b4){
czy1=false;
czy2=false;
czy3=false;
czy4=true;
czy5=false;
}
if(e.getSource() == b5){
czy1=false;
czy2=false;
czy3=false;
czy4=false;
czy5=true;
}
}
@Override
public void windowActivated(WindowEvent arg0) {
// TODO Auto-generated method stub
}
@Override
public void windowClosed(WindowEvent arg0) {
// TODO Auto-generated method stub
}
@Override
public void windowClosing(WindowEvent arg0) {
// TODO Auto-generated method stub
}
@Override
public void windowDeactivated(WindowEvent arg0) {
// TODO Auto-generated method stub
}
@Override
public void windowDeiconified(WindowEvent arg0) {
// TODO Auto-generated method stub
}
@Override
public void windowIconified(WindowEvent arg0) {
// TODO Auto-generated method stub
}
@Override
public void windowOpened(WindowEvent arg0) {
// TODO Auto-generated method stub
}
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
a = new Doda();
}
public void mouseDragged(MouseEvent e)
{
}
@Override
public void mouseMoved(MouseEvent arg0) {
// TODO Auto-generated method stub
}
public class MyPanel extends JPanel {
public MyPanel() {
}
public void paint(Graphics g)
{
Graphics2D g2 = (Graphics2D)g;
g2.setColor(color);
startPoint.y=startPoint.y-70;
endPoint.y=endPoint.y-70;
if (czy1){
g2.drawLine(startPoint.x, startPoint.y, endPoint.x, endPoint.y);
}
point1 = new Point();
point2 = new Point();
if(startPoint.x<endPoint.x){
point1.x=startPoint.x;
point2.x=endPoint.x;
}
if(startPoint.y<endPoint.y){
point1.y=startPoint.y;
point2.y=endPoint.y;
}
if(startPoint.x>endPoint.x){
point2.x=startPoint.x;
point1.x=endPoint.x;
}
if(startPoint.y>endPoint.y){
point2.y=startPoint.y;
point1.y=endPoint.y;
}
if (czy2){
g2.drawRect(point1.x, point1.y, point2.x-point1.x, point2.y-point1.y);
}
if (czy3){
g2.drawOval(point1.x, point1.y, point2.x-point1.x, point2.y-point1.y);
}
if (czy4){
g2.fillRect(point1.x, point1.y, point2.x-point1.x, point2.y-point1.y);
}
if (czy5){
g2.fillOval(point1.x, point1.y, point2.x-point1.x, point2.y-point1.y);
}
//g.setFont(Font f);
//g.setString("Tekst", int x, int y);
}
}
}