Перемещение кнопки по окну - Java
Формулировка задачи:
Добрый день!
Помогите, пожалуйста, закончить задачу.
Условие задачи:
Расположить на форме две панели и на одной из панелей поместить кнопку. При нажатии на кнопку она должна перемещаться с одной панели на другую.
Я написал код. Скорее всего, вплоть до 45-й строки код написан правильно. Но я не знаю, что нужно написать в коде начиная с 47-й строки, чтобы программа начала работать.
Помогите, пожалуйста! Заранее благодарю!!!
package myhello; import javax.swing.*; import java.awt.*; import java.awt.event.*; public class MyFrame extends JFrame { // Ссылка на внутренний контейнер формы private JPanel contentPane; // Массив из двух панелей JPanel[] panels = {new JPanel(), new JPanel()}; // Кнопка под названием "кнопка" JButton button = new JButton("Button"); // Номер панели, владеющей кнопкой int home; // Табличный менеджер, чтоб разместить две панели private GridLayout gridLayout1 = new GridLayout(); public void init() throws Exception { // Сохраняем ссылку на панель содержания формы, // чтоб не вызывать метод getContentPane() много раз contentPane = (JPanel) getContentPane(); // Устанавливаем табличный менеджер расположения contentPane.setLayout(gridLayout1); gridLayout1.setColumns(2); // Ставим панели на форму contentPane.add(panels[0]); contentPane.add(panels[1]); // Ставим кнопку на 0-ю панель home = 0; panels[home].add(button); // Обработчик нажатия на кнопку снимает ее // с одной панели и ставит на другую button.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(ActionEvent e) { panels[home].remove(button); panels[home].repaint(); panels[1 - home].add(button); home = 1 - home; } }); setSize(new Dimension(400, 300)); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } public static void main(String[] args) { MyFrame JPanel; } }
Решение задачи: «Перемещение кнопки по окну»
textual
Листинг программы
import javax.swing.*; import javax.swing.border.EtchedBorder; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; /** * Прыгающая кнопка */ public class JumpButton extends JFrame{ JumpButton(){ JFrame frame = new JFrame("Jumper"); frame.add(new JBComponent()); //frame.setSize(500, 200); frame.setBounds(500,200, 500, 200); frame.setResizable(false); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setVisible(true); } private class JBComponent extends JComponent implements ActionListener{ JButton button; JPanel panelL, panelR; boolean flag = true; private JBComponent(){ button = new JButton("Hello!"); panelL = new JPanel(); panelR = new JPanel(); panelL.add(button); panelL.setBorder(new EtchedBorder()); panelR.setBorder(new EtchedBorder()); setLayout(new GridLayout(1,2,5,10)); add(panelL); add(panelR); button.addActionListener(this); } @Override public void actionPerformed(ActionEvent e) { if ((e.getSource() == button) && (flag == true)){ panelL.remove(button); panelL.repaint(); panelR.add(button); flag = false; }else if ((e.getSource() == button) && (flag == false)){ panelR.remove(button); panelR.repaint(); panelL.add(button); flag = true; } } } public static void main(String[] args) { new JumpButton(); } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д