Перерисовка изображения при нажатии JButton

174
24 октября 2018, 05:00

Хочу, чтобы при нажатии кнопки "UP" аймэдж "gena" стирался и появлялся в новом месте - то есть x = x + 100. Но при нажатии кнопки ничего не происходит. Вот код:

import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.geom.Rectangle2D;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.util.List;
import javax.imageio.ImageIO;
import javax.swing.*;
public class mai
{
public static void main(String args[])
{
    JFrames frame = new JFrames();
    frame.setVisible(true);
    frame.setSize(800, 1000);
    frame.setLocationRelativeTo(null);
    frame.setResizable(false);
}
}
class JFrames extends JFrame
{
public JFrames()
{
    add(new DrawComponent());
}
}
class DrawComponent extends JComponent
{
private Graphics2D g2;
private BufferedImage gena;
private BufferedImage tima;
private BufferedImage money;
private JButton UP;
private JButton DOWN;
private JPanel panel;
public void paintComponent(Graphics g)
{
    g2 = (Graphics2D) g;
    File tk = new File("src/tommt.m4a");
            try 
             {                
                      gena = ImageIO.read(new File("src/геннадий.png"));
                      tima = ImageIO.read(new File("src/PicsArt_07-13- 
  12.04.34.png"));
                   money = ImageIO.read(new File("src/Монетка.png"));
             } 
             catch (IOException ex) 
             { 
                 ex.printStackTrace();
             }
            int x = 0;
            int y = 0;
            int width = 100; 
            int height = 100;
            int whiteWidth = 800;
            int whiteHeight = 800;

            Rectangle2D whiteScreen = new Rectangle2D.Double(x, y, 
whiteWidth, whiteHeight);
            g2.setColor(Color.WHITE);
            g2.draw(whiteScreen);
            g2.fill(whiteScreen);
            for(int p = 0; p<4; p++)
            {
                for(int i = 0; i<2; i++) 
                {
                    for(int u = 0; u<4; u++)
                    {
                        Rectangle2D black = new Rectangle2D.Double(x, y, 
width, height);
                        g2.setColor(Color.BLACK);
                        g2.draw(black);
                        g2.fill(black);
                        x = x + 200;
                    }
                    x = 100;
                    y = y + 100;
                }
                x = 0;
            }
                g2.drawImage(tima, 700, 0, null);
                g2.drawImage(gena, 25, 725, null);
                g2.drawImage(money, 225, 525, null);
                g2.drawImage(money, 525, 225, null);
                g2.drawImage(money, 125, 25, null);
                Font UpAndDownFont = new Font("Serif", Font.BOLD, 36);  
                panel = new JPanel();
                panel.setSize(800, 200);
                panel.setLocation(0, 800);
            UP = new JButton();
            UP.setVisible(true);
                UP.setFont(UpAndDownFont);
                UP.setText("UP");
            DOWN = new JButton();
            DOWN.setVisible(true);
                DOWN.setFont(UpAndDownFont);
                DOWN.setText("DOWN");
            panel.add(UP);
            panel.add(DOWN);
            UpAction ua = new UpAction();
            DownAction da = new DownAction();
            UP.addActionListener(ua);
            DOWN.addActionListener(da);
            add(panel);

}
class UpAction implements ActionListener
{
    public void actionPerformed(ActionEvent e)
    {
        g2.drawImage(gena, 0, 0, null);
    }
}
class DownAction implements ActionListener
{
    public void actionPerformed(ActionEvent e)
    {
    }
}
}
READ ALSO
Не удается изменить конструктор через javaagent

Не удается изменить конструктор через javaagent

Есть javaagent со следующим ClassFileTransformer:

154
Проблема при настройке мониторинга zabbix jmx

Проблема при настройке мониторинга zabbix jmx

Необходимые порты открыты, удаленный мониторинг через jconsole с других компов доступенПроблема заключается в том, что zabbix возвращает такую...

150
Пул задач блокирующая очередь

Пул задач блокирующая очередь

как мне сделать чтобы Треды запущенные ждали? зачем такая блокирующая очередь у которой wait отсутствует чем она блокирующая? вообще правильно...

139
Два ResultSet в сервлете

Два ResultSet в сервлете

такой вот вопрос, можно ли использовать два ResultSet в одном сервлете или нет? При использовании второго ResultSet выдает ошибку: orgpostgresql

152