Проблемы с перемещением объекта в Java Swing ⇐ JAVA
-
Anonymous
Проблемы с перемещением объекта в Java Swing
У меня возникли проблемы с отображением перемещения пользовательского объекта Jbutton в Jpanel, добавленного в Jframe. Диаграмма отображается, но при вызове метода startMovement диаграмма исчезает под Jpanel.
Я бьюсь над этой проблемой уже несколько дней, но не могу ее решить.
публичный класс MyPanel расширяет JPanel { частный BufferedImage BackgroundImage; общественная MyPanel (String imagePath) { пытаться { backgroundImage = ImageIO.read(новый файл(imagePath)); } catch (IOException e) { е.printStackTrace(); } } @Override protected void PaintComponent(Graphics g) { супер.paintComponent(г); если (backgroundImage!= ноль) { g.drawImage(backgroundImage, 0, 0, getWidth(), getHeight(), это); } } } импортировать представление.MyPanel; импортировать javax.swing.*; импортировать java.awt.*; импортировать java.awt.event.ActionEvent; импортировать java.awt.event.ActionListener; импортировать java.awt.image.BufferedImage; импортировать java.io.File; импортировать java.io.IOException; импортировать javax.imageio.ImageIO; публичный класс MovingButton расширяет JButton реализует ActionListener { частная строка cartaVisualizzataPath; частная строка RetroCartaVisualizzataPath; частный int x; частный int y; частный int deltaX; частный int deltaY; частный таймер timerMovimento; частный таймер timerRotazione; частный int финалкс; частный int окончательно; частный BufferedImage frontCardImage; частный BufferedImage backCardImage; частное логическое раскрытие = ложь; частная двойная шкалаX = 1,0; статический кадр JFrame = новый JFrame(); static MyPanel myPanel = new MyPanel("/Users/andrea/Il mio Drive/Università/- Методика программирования/BackGround_Resized.png"); public MovingButton(int x, int y, String cartaVisualizzataPath, String RetroCartaVisualizzataPath) { это.х = х; это.у = у; this.cartaVisualizzataPath = cartaVisualizzataPath; this.retroCartaVisualizzataPath = RetroCartaVisualizzataPath; timerMovimento = новый таймер (10, это); timerRotazione = новый таймер (10, это); // Изображение для конкретного изображения пытаться { frontCardImage = ImageIO.read(новый файл(this.cartaVisualizzataPath)); backCardImage = ImageIO.read(новый файл(this.retroCartaVisualizzataPath)); } catch (IOException e) { е.printStackTrace(); } } @Override общественный недействительный actionPerformed (ActionEvent e) { //Эффетто-движение если (e.getSource().equals(timerMovimento)) { System.out.println("Соно, которое"); System.out.println("x: " + x); System.out.println("y: " + x); if (x == Finalx && y == Finaly) { таймерДвижение.стоп(); System.out.println("Завершение движения"); } если (х == финалкс) дельтаХ = 0; если (y == окончательно) дельтаY = 0; х += дельтаX; у += дельтаY; мояПанель.перекрасить(); } //Эффетто вращения if (e.getSource().equals(timerRotazione)) { // Добавление эффектов по хартии карт масштабХ -= 0,01; // Изменение этого значения для регулировки скорости движения if (scaleX
У меня возникли проблемы с отображением перемещения пользовательского объекта Jbutton в Jpanel, добавленного в Jframe. Диаграмма отображается, но при вызове метода startMovement диаграмма исчезает под Jpanel.
Я бьюсь над этой проблемой уже несколько дней, но не могу ее решить.
публичный класс MyPanel расширяет JPanel { частный BufferedImage BackgroundImage; общественная MyPanel (String imagePath) { пытаться { backgroundImage = ImageIO.read(новый файл(imagePath)); } catch (IOException e) { е.printStackTrace(); } } @Override protected void PaintComponent(Graphics g) { супер.paintComponent(г); если (backgroundImage!= ноль) { g.drawImage(backgroundImage, 0, 0, getWidth(), getHeight(), это); } } } импортировать представление.MyPanel; импортировать javax.swing.*; импортировать java.awt.*; импортировать java.awt.event.ActionEvent; импортировать java.awt.event.ActionListener; импортировать java.awt.image.BufferedImage; импортировать java.io.File; импортировать java.io.IOException; импортировать javax.imageio.ImageIO; публичный класс MovingButton расширяет JButton реализует ActionListener { частная строка cartaVisualizzataPath; частная строка RetroCartaVisualizzataPath; частный int x; частный int y; частный int deltaX; частный int deltaY; частный таймер timerMovimento; частный таймер timerRotazione; частный int финалкс; частный int окончательно; частный BufferedImage frontCardImage; частный BufferedImage backCardImage; частное логическое раскрытие = ложь; частная двойная шкалаX = 1,0; статический кадр JFrame = новый JFrame(); static MyPanel myPanel = new MyPanel("/Users/andrea/Il mio Drive/Università/- Методика программирования/BackGround_Resized.png"); public MovingButton(int x, int y, String cartaVisualizzataPath, String RetroCartaVisualizzataPath) { это.х = х; это.у = у; this.cartaVisualizzataPath = cartaVisualizzataPath; this.retroCartaVisualizzataPath = RetroCartaVisualizzataPath; timerMovimento = новый таймер (10, это); timerRotazione = новый таймер (10, это); // Изображение для конкретного изображения пытаться { frontCardImage = ImageIO.read(новый файл(this.cartaVisualizzataPath)); backCardImage = ImageIO.read(новый файл(this.retroCartaVisualizzataPath)); } catch (IOException e) { е.printStackTrace(); } } @Override общественный недействительный actionPerformed (ActionEvent e) { //Эффетто-движение если (e.getSource().equals(timerMovimento)) { System.out.println("Соно, которое"); System.out.println("x: " + x); System.out.println("y: " + x); if (x == Finalx && y == Finaly) { таймерДвижение.стоп(); System.out.println("Завершение движения"); } если (х == финалкс) дельтаХ = 0; если (y == окончательно) дельтаY = 0; х += дельтаX; у += дельтаY; мояПанель.перекрасить(); } //Эффетто вращения if (e.getSource().equals(timerRotazione)) { // Добавление эффектов по хартии карт масштабХ -= 0,01; // Изменение этого значения для регулировки скорости движения if (scaleX
Мобильная версия