Top.Mail.Ru
Ответы
Аватар пользователя
Изменено
Аватар пользователя
Аватар пользователя
Аватар пользователя
Программирование
+2

Помогите, пожалуйста, доделать код

1
 Нужно сделать так, чтобы при нажатии мышкой на красный овал, изменялся цвет овала  
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
 
import java.awt.*; 
import javax.swing.*; 
import java.awt.event.*; 
import java.awt.event.ItemEvent; 
import java.awt.event.ItemListener; 
import javax.swing.Timer; 
 
public class Pic{ 
	public static void main(String[] args){ 
		JFrame w = new JFrame("Окно"); 
		w.setSize(400, 400); 
		w.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
		w.setLayout(new BorderLayout(1, 1)); 
		Canvas canv = new Canvas(); 
			w.add(canv); 
			w.setVisible(true); 
	} 
} 
 
class Canvas extends JComponent implements ActionListener//, MouseListener 
{ 
	 
	//public void mousePressed(MouseEvent e){ 
	//} 
	//public void mouseReleased(MouseEvent e){ 
	//} 
	//public void mouseEntered(MouseEvent e){ 
	//} 
	//public void mouseExited(MouseEvent e){ 
	//} 
	//public void mouseClicked(MouseEvent e){ 
		//int xM = e.getX(); 
		//int yM = e.getY(); 
		//if (xM >= xC && xM <= xC+20 && yM >= yC && yM <= yC+20 && cE){ 
			//score++; 
			//cE = false; 
			//changeData(score); 
		//} 
		 
	//} 
	 
	//Color colorC; 
	public Canvas() 
	{ 
		//this.addMouseListener(this); 
		super(); 
		Timer timer = new Timer(100, this); 
	timer.start(); 
	 
	} 
	int x = 5; 
	int y = 5; 
	int x1 = 250; 
	int x2 = 270; 
	int x3 = 290; 
	 
	 
	 
	@Override 
	public void actionPerformed(ActionEvent e){ 
		if(y<75){ 
			x+=4; 
			y+=2; 
			x1-=2; 
			x2-=2; 
			x3-=2; 
		} 
		else{ 
			if(x1 < 290){ 
				x1 += 5; 
			} 
		} 
			repaint(); 
	} 
		 
		 
		public void paintComponent(Graphics g){ 
			int xC = 50; 
			int yC = 20; 
			super.paintComponent(g); 
			Graphics2D g2d = (Graphics2D)g; 
			g2d.setPaint(Color.GREEN); 
			g2d.fillOval(x, 75, 15, 15); 
			g2d.setPaint(Color.RED); 
			g2d.fillOval(150, y, xC, yC); 
			g2d.setPaint(Color.BLUE); 
			int [] k = {x1, x2, x3}; 
			int [] m = {100, 80, 110}; 
			g2d.drawPolygon(k, m, 3); 
			super.repaint(); 
		} 
	} 
По дате
По рейтингу
Аватар пользователя
Мыслитель
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
 public class Q233043003 implements Runnable { 
 
    private static final int INTERVAL = 1000 / 30; // ~30 fps 
 
    private JFrame frame; 
    private WierdComponent wierd; 
 
    private Timer renderTimer; 
 
    @Override 
    public void run() { 
        initComponents(); 
        initEvents(); 
        frame.pack(); 
        frame.setLocationRelativeTo(null); 
        frame.setVisible(true); 
 
        this.renderTimer = new Timer(INTERVAL, wierd::nextFrame); 
        renderTimer.start(); 
    } 
 
    private void initComponents() { 
        this.frame = new JFrame(getClass().getSimpleName()); 
        this.wierd = new WierdComponent(); 
        Container pane = frame.getContentPane(); 
        pane.setLayout(new BorderLayout()); 
        pane.add(wierd, BorderLayout.CENTER); 
    } 
 
    private void initEvents() { 
        MouseAdapter mouseListener = new MouseAdapter() { 
            @Override 
            public void mousePressed(MouseEvent e) { 
                wierd.pressed(e); 
            } 
        }; 
        wierd.addMouseListener(mouseListener); 
 
        frame.setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE); 
        frame.addWindowListener(new WindowAdapter() { 
            @Override 
            public void windowClosing(WindowEvent e) { 
                int res = JOptionPane.showConfirmDialog(frame, "Exit?", 
                        "EXIT", JOptionPane.YES_NO_OPTION); 
                if (res != JOptionPane.YES_OPTION) { 
                    return; 
                } 
                if (renderTimer != null) { 
                    renderTimer.stop(); 
                } 
                frame.setVisible(false); 
                frame.dispose(); 
            } 
        }); 
    } 
    public static void main(String[] args) { 
        SwingUtilities.invokeLater(new Q233043003()); 
    } 
}