Witam,
mam problem z wyświetleniem kwadratu, który ma zmieniać swoją pozycję. Normalnie nie ma z tym problemu, ale ja chciałbym, żeby to wszystko było wyświetlane kiedy nacisnę przycisk "Nowa gra". Oto kod:
import java.awt.BorderLayout;
import java.awt.FlowLayout;
import java.awt.Toolkit;
import java.util.Timer;
import java.util.TimerTask;
import java.util.*;
import java.awt.*;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.event.*;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.*;
public class panele extends JFrame {
int x = 0, y = 0;
JPanel basic = new JPanel();
JPanel panelmenu = new JPanel();
JPanel panelprzyciskow = new JPanel();
JPanel paneldrugi = new JPanel();
JButton nowagra = new JButton("Nowa Gra");
boolean ch = false;
boolean ach = false;
boolean bch = false;
boolean cch = false;
public panele() {
super("window");
setLayout(new BorderLayout());
basic.setLayout(new BorderLayout());
add(basic);
basic.setBackground(Color.black);
panelmenu.setBackground(Color.red);
panelprzyciskow.setBackground(Color.blue);
paneldrugi.setBackground(Color.yellow);
basic.add("Center", panelmenu);
basic.add("East",panelprzyciskow);
panelprzyciskow.add(nowagra);
nowagra.addActionListener(new nowagra());
}
class xxx implements ActionListener {
public void actionPerformed(ActionEvent e) {
if (!ach)
{
basic.removeAll();
basic.revalidate();
repaint();
} else {
basic.removeAll();
basic.add(paneldrugi);
basic.revalidate();
repaint();
}
ach = !ach;
}
}
class nowagra implements ActionListener {
public void actionPerformed(ActionEvent e) {
if (!bch)
{
basic.removeAll();
basic.add(paneldrugi);
basic.revalidate();
repaint();
} else {
basic.removeAll();
basic.add(panelmenu);
basic.revalidate();
repaint();
}
bch = !bch;
}
}
class gra extends JPanel implements KeyListener
{
public void paint (Graphics o)
{
o.setColor(Color.green);
o.fillRect(x,y,50,50);
}
public void keyTyped(KeyEvent e){
}
public void keyReleased(KeyEvent e){
}
public void keyPressed(KeyEvent e){
int keyCode = e.getKeyCode();
if (keyCode == KeyEvent.VK_D)
{
x = x + 50;
}
this.repaint();
}
}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
JFrame fr = new panele();
fr.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
fr.setSize(200, 200);
fr.setVisible(true);
fr.setResizable(true);
}
});
}
}
Póki co nie jest to ni jak połączone ze sobą (okno główne z klasą gra). Próbowałem łączyć to na wiele sposobów, ale to tylko zaśmiecało kod. Może mi ktoś wyjaśnić jak to zrobić, żeby zaczęło działać?
Z góry dzięki.