绘ArrayList()中的直线 frame.show(); --> frame.setVisible(true); 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 frame.show();-->frame.setVisible(true)还是不行 import javax.swing.*;import java.awt.*;import java.awt.event.*;import java.awt.geom.*;import java.util.*;public class KeyGame { public static void main(String[] ags) { KeyGameFrame frame = new KeyGameFrame(); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setVisible(true); }}class KeyGameFrame extends JFrame { public static final int WIDTH = 350; public static final int HEIGHT = 400; public KeyGameFrame() { setTitle("KeyGame"); setSize(WIDTH, HEIGHT); getContentPane().add(new KeyPanel()); }}class KeyPanel extends JPanel { public static final int INCREASEMENT = 2; private Point2D last; private ArrayList lines = new ArrayList(); public KeyPanel() { last = new Point2D.Double(100, 100); addKeyListener(new KeyHandler()); setFocusable(true); //做faq的时候题目:JPanel的key事件监听 } public void paintComponent(Graphics g) { //去掉s super.paintComponent(g); Graphics2D g2 = (Graphics2D) g; for (int i = 0; i < lines.size(); i++) { g2.draw((Line2D.Double) lines.get(i)); } } public void add(int increase_x, int increase_y) { Point2D.Double end = new Point2D.Double(last.getX() + increase_x, last.getY() + increase_y); Line2D.Double line = new Line2D.Double(last, end); lines.add(line); repaint(); last = end; } private class KeyHandler extends KeyAdapter { public void keyPressed(KeyEvent event) { int keyCode = event.getKeyCode(); int d = INCREASEMENT; if (keyCode == event.VK_LEFT) { add(-d, 0); } else if (keyCode == event.VK_RIGHT) { add(d, 0); } else if (keyCode == event.VK_UP) { add(0, -d); //分清上下 } else if (keyCode == event.VK_DOWN) { add(0, d); } } }} 有关《java核心开发技术从入门到精通》的问题:atan是什么意思啊... 循环体内JAVA生成不同名称的变量,怎么做啊? 如何在java GUI开发中启动spss软件并插入数据 菜鸟的很简单的送分问题!只给正确答案分 答案出来就结贴! 按参数对字符串进行分段分割 Junit 验证执行结果 请教??? 有关于全屏显示的问题。。。。。。。。。。。。。。。。请教,谢谢 我的分数为什么不会变 怎样取消windowClosing(WindowEvent e)的关闭窗口动作 关于JBuilder的问题 一个类的对象,算不算是这个类的成员?
还是不行
import java.awt.*;
import java.awt.event.*;
import java.awt.geom.*;
import java.util.*;
public class KeyGame {
public static void main(String[] ags) {
KeyGameFrame frame = new KeyGameFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
}
class KeyGameFrame extends JFrame {
public static final int WIDTH = 350; public static final int HEIGHT = 400; public KeyGameFrame() {
setTitle("KeyGame");
setSize(WIDTH, HEIGHT);
getContentPane().add(new KeyPanel());
}
}
class KeyPanel extends JPanel {
public static final int INCREASEMENT = 2; private Point2D last; private ArrayList lines = new ArrayList(); public KeyPanel() {
last = new Point2D.Double(100, 100);
addKeyListener(new KeyHandler());
setFocusable(true); //做faq的时候题目:JPanel的key事件监听
} public void paintComponent(Graphics g) { //去掉s
super.paintComponent(g);
Graphics2D g2 = (Graphics2D) g;
for (int i = 0; i < lines.size(); i++) {
g2.draw((Line2D.Double) lines.get(i));
}
} public void add(int increase_x, int increase_y) {
Point2D.Double end = new Point2D.Double(last.getX() + increase_x,
last.getY() + increase_y); Line2D.Double line = new Line2D.Double(last, end);
lines.add(line);
repaint(); last = end;
} private class KeyHandler extends KeyAdapter {
public void keyPressed(KeyEvent event) {
int keyCode = event.getKeyCode();
int d = INCREASEMENT;
if (keyCode == event.VK_LEFT) {
add(-d, 0);
} else if (keyCode == event.VK_RIGHT) {
add(d, 0);
} else if (keyCode == event.VK_UP) {
add(0, -d); //分清上下
} else if (keyCode == event.VK_DOWN) {
add(0, d);
}
}
}
}