How do/can you override methods from non-inherited class? Secondly is there a better term than "non-inherited classes"?
I have a class that "extends" JFrame and needs to override paintComponent from JPanel. How? Or it can extend JPanel and needs to access methods like setTitle(), setResizable(), and setDefaultCloseOperation();
In response to the latest answer:
i've done this:
public class Chess extends JPanel {
boolean du, dd, dl, dr;
double x, y;
public class AL extends KeyAdapter {
public void keyPressed(KeyEvent e) {
int keyC = e.getKeyCode();
switch(keyC) {
case KeyEvent.VK_LEFT:
dl = true;
break;
case KeyEvent.VK_RIGHT:
dr = true;
break;
case KeyEvent.VK_DOWN:
dd = true;
break;
case KeyEvent.VK_UP:
du = true;
break;
}
}
public void keyReleased(KeyEvent e) {
int keyC = e.getKeyCode();
switch(keyC) {
case KeyEvent.VK_LEFT:
dl = false;
break;
case KeyEvent.VK_RIGHT:
dr = false;
break;
case KeyEvent.VK_DOWN:
dd = false;
break;
case KeyEvent.VK_UP:
du = false;
break;
}
}
}
public void Chess() {
JFrame frame = new JFrame();
frame.addKeyListener(new AL());
frame.setTitle("Chess");
frame.setSize(500, 500);
frame.setResizable(false);
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
du = dl = dd = dr = false;
x = y = 150;
}
public void paintComponent(Graphics g) {
super.paintComponent(g);
setBackground(Color.CYAN);
double i = .25;
if (du) {
y -= i;
}
if (dr) {
x += i;
}
if (dd) {
y += i;
}
if (dl) {
x -= i;
}
if (x < 0) {
x = 0;
}
if (x > getWidth() - 25) {
x = getWidth() - 25;
}
if (y < 25) {
y = 25;
}
if (y > getHeight() - 25) {
y = getHeight() - 25;
}
g.drawOval( (int) x, (int) y, 25, 25);
repaint();
}
public static void main(String[] args) {
new Chess();
}
}
It should move the oval around the screen (I'm trying to get the basics down) but when i run it, a box doesn't appear. It worked when was using jFrame and overrode paint and called a non-overridden paintComponent() from paint(). not what i want to do. Why does a box no longer appear?