我的框架中应该有两个图像,一个男孩和一个摇滚,我希望他们有单独的课程,这样我就可以为每个人做不同的事情。我问我是否应该,并建议。我只是把我的摇滚移到另一个班级但现在摇滚不再出现了。我的问题在哪里?
头等舱:
import java.awt.Color;
import java.awt.Dimension;
import javax.swing.*;
public class JumpyBoy {
public static void main(String[] args) {
JFrame frame = new JFrame ("Boy");
frame.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE );
frame.setPreferredSize (new Dimension (1000, 700));
Boy panel = new Boy();
frame.getContentPane().add(panel);
frame.pack();
frame.setVisible(true);
}
}
男生班:
import javax.swing.*;
import java.awt.*;
import java.awt.event.KeyEvent;
public class Boy extends JPanel {
JLabel boy1;
ImageIcon boy;
public Boy () {
setLayout(null);
setBackground (Color.white);
boy = new ImageIcon ("U:\\My Documents\\Eclipse\\JumpyBoy\\src\\TheBoy.png");
boy1 = new JLabel (boy, SwingConstants.CENTER);
boy1.setBounds (80, 30, 130, 500);
add (boy1);
}
public void keyPressed(KeyEvent e) {
int key = e.getKeyCode();
if (key == KeyEvent.VK_SPACE) {
}}}
摇滚课:
import javax.swing.*;
import java.awt.*;
import java.awt.event.KeyEvent;
public class rock extends JPanel {
JLabel rock1;
ImageIcon rock;
public rock () {
setLayout(null);
setBackground (Color.white);
rock = new ImageIcon ("U:\\My Documents\\Eclipse\\JumpyBoy\\src\\rock.jpg");
rock1 = new JLabel (rock, SwingConstants.CENTER);
rock1.setBounds (300, 240, 130, 500);
add (rock1);
}
public void keyPressed(KeyEvent e) {
int key = e.getKeyCode();
if (key == KeyEvent.VK_SPACE) {
}}}
答案 0 :(得分:0)
你永远不会在任何地方添加任何新的摇滚对象,所以在你的程序中它不会起作用是有道理的。
虽然我同意你可以很好地使用Rock(请注意所有类名称应以大写字母开头)逻辑课程,但我并不认为拥有它符合您的最佳利益扩展JPanel。你的男孩班也一样。这里应该有一个JPanel,它包含Rock和Boy对象并绘制它们。