你这行程序有问题: JFrame Frame = new SketchFrame();Frame在java中已经被使用: java.awt.Frame 你换一个名,比如: JFrame myFrame = new SketchFrame(); 应该可以。 另外对象请开头用小写,养成良好的编程习惯 ;)
搞定了,呵呵! 老兄,你写的代码很乱啊!import java.awt.*; import java.awt.event.*; import javax.swing.*;public class Sketch{ public static void main(String[] args){ SketchFrame Frame = new SketchFrame(); Frame.show(); } }class SketchFrame extends JFrame{ public SketchFrame(){ setTitle("Sketch"); setSize(300,300); Container contentPane = getContentPane(); contentPane.add(new SketchPanel()); addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent we){ System.exit(0); } }); } }class SketchPanel extends JPanel implements KeyListener{ public SketchPanel(){ addKeyListener(this); } public void keyPressed(KeyEvent ke){ int keyCode = ke.getKeyCode(); int d; if (ke.isShiftDown()) d = 5; else d = 1; if (keyCode == KeyEvent.VK_LEFT) add(-d,0); else if (keyCode == KeyEvent.VK_RIGHT) add(d,0); else if (keyCode == KeyEvent.VK_UP) add(0,-d); else if (keyCode == KeyEvent.VK_DOWN) add(0,d); } public void keyReleased(KeyEvent ke) { } public void keyTyped(KeyEvent ke) { char keyChar = ke.getKeyChar(); int d; if (Character.isUpperCase(keyChar)) { d = 5; keyChar = Character.toLowerCase(keyChar); } else d = 1; if (keyChar == 'j') add(-d,0); else if (keyChar == 'l') add(d,0); else if (keyChar == 'i') add(0,-d); else if (keyChar == 'k') add(0,d); } public boolean isFocusTraversable() { return true; } public void add(int dx,int dy) { end.x += dx; end.y += dy; Graphics g = getGraphics(); g.drawLine(start.x,start.y,end.x,end.y); g.dispose(); start.x = end.x; start.y = end.y; } private Point start = new Point(0,0); private Point end = new Point(0,0); }这是第二个,呵呵! 祝你成功! 呵呵! 还有问题发短消息给我!
这是第二个,呵呵! 祝你成功! 呵呵! 还有问题发短消息给我!import java.awt.*; import javax.swing.*; import java.awt.event.*; public class ButtonTest{ public static void main(String[] args){ ButtonFrame Frame = new ButtonFrame(); Frame.show(); } }class ButtonFrame extends JFrame{ public ButtonFrame(){ setTitle("Button Test"); setSize(300,300); addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent e) { System.exit(0); } }); Container contentPane = getContentPane(); contentPane.add(new ButtonPanel()); } } class ButtonPanel extends JPanel implements ActionListener{ public ButtonPanel(){ yellowButton = new JButton("Yellow"); blueButton = new JButton("Blue"); redButton = new JButton("Red"); add(yellowButton); add(blueButton); add(redButton); yellowButton.addActionListener(this); blueButton.addActionListener(this); redButton.addActionListener(this); } public void actionPerformed(ActionEvent e){ Object source = e.getSource(); Color backgroundColor = getBackground(); if(source == yellowButton) backgroundColor = Color.yellow; else if(source == blueButton) backgroundColor = Color.blue; else if(source == redButton) backgroundColor = Color.red; setBackground(backgroundColor); repaint(); } private JButton yellowButton,blueButton,redButton; }
note:Sketch.java uses or overrides a deprecated API. 这是说你的程序中用了一个已被弃用的方法。不影响正常运行的,但最好是找到是哪个方法,然后用相应方法来替代。Unrecognized option :-deprecation 这个似乎不应该出问题啊。不知道怎么回事Do not use ButtonPanel.add() use ButtonPanel.getContentPane().add() instead 这不是告诉你怎么做了嘛。:) JFrame需要用getContentPane()方法得到一个容器,然后再往容器上放组件。
JFrame Frame = new SketchFrame();Frame在java中已经被使用: java.awt.Frame
你换一个名,比如:
JFrame myFrame = new SketchFrame();
应该可以。
另外对象请开头用小写,养成良好的编程习惯 ;)
老兄,你写的代码很乱啊!import java.awt.*;
import java.awt.event.*;
import javax.swing.*;public class Sketch{
public static void main(String[] args){
SketchFrame Frame = new SketchFrame();
Frame.show();
}
}class SketchFrame extends JFrame{
public SketchFrame(){
setTitle("Sketch");
setSize(300,300); Container contentPane = getContentPane();
contentPane.add(new SketchPanel()); addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent we){
System.exit(0);
}
});
}
}class SketchPanel extends JPanel implements KeyListener{
public SketchPanel(){
addKeyListener(this);
} public void keyPressed(KeyEvent ke){
int keyCode = ke.getKeyCode();
int d;
if (ke.isShiftDown())
d = 5;
else
d = 1;
if (keyCode == KeyEvent.VK_LEFT)
add(-d,0);
else if (keyCode == KeyEvent.VK_RIGHT)
add(d,0);
else if (keyCode == KeyEvent.VK_UP)
add(0,-d);
else if (keyCode == KeyEvent.VK_DOWN)
add(0,d);
} public void keyReleased(KeyEvent ke)
{
} public void keyTyped(KeyEvent ke)
{
char keyChar = ke.getKeyChar();
int d;
if (Character.isUpperCase(keyChar))
{
d = 5;
keyChar = Character.toLowerCase(keyChar);
}
else
d = 1;
if (keyChar == 'j') add(-d,0);
else if (keyChar == 'l') add(d,0);
else if (keyChar == 'i') add(0,-d);
else if (keyChar == 'k') add(0,d);
} public boolean isFocusTraversable()
{
return true;
} public void add(int dx,int dy)
{
end.x += dx;
end.y += dy;
Graphics g = getGraphics();
g.drawLine(start.x,start.y,end.x,end.y);
g.dispose();
start.x = end.x;
start.y = end.y; } private Point start = new Point(0,0);
private Point end = new Point(0,0);
}这是第二个,呵呵!
祝你成功!
呵呵!
还有问题发短消息给我!
祝你成功!
呵呵!
还有问题发短消息给我!import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
public class ButtonTest{
public static void main(String[] args){
ButtonFrame Frame = new ButtonFrame();
Frame.show();
}
}class ButtonFrame extends JFrame{
public ButtonFrame(){
setTitle("Button Test");
setSize(300,300); addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
}); Container contentPane = getContentPane();
contentPane.add(new ButtonPanel());
}
}
class ButtonPanel extends JPanel implements ActionListener{
public ButtonPanel(){
yellowButton = new JButton("Yellow");
blueButton = new JButton("Blue");
redButton = new JButton("Red"); add(yellowButton);
add(blueButton);
add(redButton); yellowButton.addActionListener(this);
blueButton.addActionListener(this);
redButton.addActionListener(this);
} public void actionPerformed(ActionEvent e){
Object source = e.getSource();
Color backgroundColor = getBackground();
if(source == yellowButton)
backgroundColor = Color.yellow;
else if(source == blueButton)
backgroundColor = Color.blue;
else if(source == redButton)
backgroundColor = Color.red; setBackground(backgroundColor);
repaint();
} private JButton yellowButton,blueButton,redButton;
}
这是说你的程序中用了一个已被弃用的方法。不影响正常运行的,但最好是找到是哪个方法,然后用相应方法来替代。Unrecognized option :-deprecation
这个似乎不应该出问题啊。不知道怎么回事Do not use ButtonPanel.add()
use ButtonPanel.getContentPane().add() instead
这不是告诉你怎么做了嘛。:)
JFrame需要用getContentPane()方法得到一个容器,然后再往容器上放组件。
ButtonPanel.add()
这样没错啊!问题在这里:
class ButtonPanel extends JFrame implements ActionListener
************ ********定义的是面板,继承的却是JFrame ,这里才是致命的错误啊!
楼主的两个程序都犯了,这个错误啊!还有个代码写的太乱了,以后可要注意啊!
要不别人可不会看了!呵呵!