为什么以下代码输出的结果只有一个窗口,里面没有内容呢?
求具体的指点,指出我的那一段代码有问题
先谢谢各位了!import java.awt.*;
import java.awt.geom.*;
import javax.swing.*;
public class MyFrame {
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable(){
public void run(){
DrawFrame frame=new DrawFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
DrawComponent comp=new DrawComponent();
frame.add(comp);
frame.setVisible(true);
//comp.setVisible(true);
}
}); }}
class DrawFrame extends JFrame {
public DrawFrame(){
Toolkit kit=Toolkit.getDefaultToolkit();
Dimension screenSize=kit.getScreenSize();
int width=screenSize.width;
int height=screenSize.height;
setSize(width,height);
Image img=kit.getImage("icon.jpg");
setIconImage(img);
setTitle("elsfk");
}
}
class DrawComponent extends JComponent{
public void PaintShaps(Graphics g)
{
Graphics2D g2=(Graphics2D)g;
//draw a square
g2.draw(new Rectangle2D.Double(100,100,50,50));
g2.draw(new Rectangle2D.Double(100,150,50,50));
g2.draw(new Rectangle2D.Double(150,150,50,50));
g2.draw(new Rectangle2D.Double(150,200,50,50));
//draw a string
Point2D pointFirst=new Point(100,100);
Point2D pointLast=new Point(150,200);
g2.draw(new Line2D.Double(pointFirst,pointLast));
//draw a rectangle
Rectangle2D rect=new Rectangle2D.Double(300,300,100,80);
g2.draw(rect);
//draw a circle
Ellipse2D cir=new Ellipse2D.Double();
cir.setFrameFromCenter(rect.getCenterX(),rect.getCenterY(),300+100,300+80);
g2.draw(cir);
}
}
求具体的指点,指出我的那一段代码有问题
先谢谢各位了!import java.awt.*;
import java.awt.geom.*;
import javax.swing.*;
public class MyFrame {
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable(){
public void run(){
DrawFrame frame=new DrawFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
DrawComponent comp=new DrawComponent();
frame.add(comp);
frame.setVisible(true);
//comp.setVisible(true);
}
}); }}
class DrawFrame extends JFrame {
public DrawFrame(){
Toolkit kit=Toolkit.getDefaultToolkit();
Dimension screenSize=kit.getScreenSize();
int width=screenSize.width;
int height=screenSize.height;
setSize(width,height);
Image img=kit.getImage("icon.jpg");
setIconImage(img);
setTitle("elsfk");
}
}
class DrawComponent extends JComponent{
public void PaintShaps(Graphics g)
{
Graphics2D g2=(Graphics2D)g;
//draw a square
g2.draw(new Rectangle2D.Double(100,100,50,50));
g2.draw(new Rectangle2D.Double(100,150,50,50));
g2.draw(new Rectangle2D.Double(150,150,50,50));
g2.draw(new Rectangle2D.Double(150,200,50,50));
//draw a string
Point2D pointFirst=new Point(100,100);
Point2D pointLast=new Point(150,200);
g2.draw(new Line2D.Double(pointFirst,pointLast));
//draw a rectangle
Rectangle2D rect=new Rectangle2D.Double(300,300,100,80);
g2.draw(rect);
//draw a circle
Ellipse2D cir=new Ellipse2D.Double();
cir.setFrameFromCenter(rect.getCenterX(),rect.getCenterY(),300+100,300+80);
g2.draw(cir);
}
}
改成下面的代码就好import java.awt.*;
import java.awt.geom.*;
import javax.swing.*;
public class MyFrame {
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable(){
public void run(){
DrawFrame frame=new DrawFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
DrawComponent comp=new DrawComponent();
frame.add(comp);
frame.setVisible(true);
//comp.setVisible(true); }
}); }}
class DrawFrame extends JFrame {
public DrawFrame(){
Toolkit kit=Toolkit.getDefaultToolkit();
Dimension screenSize=kit.getScreenSize();
int width=screenSize.width;
int height=screenSize.height;
setSize(width,height);
Image img=kit.getImage("icon.jpg");
setIconImage(img);
setTitle("elsfk");
}}
class DrawComponent extends JComponent{
@Override
public void paint(Graphics g) {
super.paint(g); //To change body of overridden methods use File | Settings | File Templates.
Graphics2D g2=(Graphics2D)g;
//draw a square
g2.draw(new Rectangle2D.Double(100,100,50,50));
g2.draw(new Rectangle2D.Double(100,150,50,50));
g2.draw(new Rectangle2D.Double(150,150,50,50));
g2.draw(new Rectangle2D.Double(150,200,50,50));
//draw a string
Point2D pointFirst=new Point(100,100);
Point2D pointLast=new Point(150,200);
g2.draw(new Line2D.Double(pointFirst,pointLast));
//draw a rectangle
Rectangle2D rect=new Rectangle2D.Double(300,300,100,80);
g2.draw(rect);
//draw a circle
Ellipse2D cir=new Ellipse2D.Double();
cir.setFrameFromCenter(rect.getCenterX(),rect.getCenterY(),300+100,300+80);
g2.draw(cir);
}
}
import java.awt.*;
import java.awt.geom.*;
import javax.swing.*;public class MyFrame {
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
MyDrawFrame frame = new MyDrawFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
DrawComponent comp = new DrawComponent();
frame.add(comp);
frame.setVisible(true);
//comp.setVisible(true); }
}); }}class MyDrawFrame extends JFrame {
public MyDrawFrame() {
Toolkit kit = Toolkit.getDefaultToolkit();
Dimension screenSize = kit.getScreenSize();
int width = screenSize.width;
int height = screenSize.height;
setSize(width, height);
Image img = kit.getImage("icon.jpg");
setIconImage(img);
setTitle("elsfk");
}}class DrawComponent extends JComponent {
public void paintComponent(Graphics g) {//重写paintComponent方法,
super.paintComponent(g); //To change body of overridden methods use File | Settings | File Templates.
Graphics2D g2 = (Graphics2D) g;
//draw a square
g2.draw(new Rectangle2D.Double(100, 100, 50, 50));
g2.draw(new Rectangle2D.Double(100, 150, 50, 50));
g2.draw(new Rectangle2D.Double(150, 150, 50, 50));
g2.draw(new Rectangle2D.Double(150, 200, 50, 50));
//draw a string
Point2D pointFirst = new Point(100, 100);
Point2D pointLast = new Point(150, 200);
g2.draw(new Line2D.Double(pointFirst, pointLast));
//draw a rectangle
Rectangle2D rect = new Rectangle2D.Double(300, 300, 100, 80);
g2.draw(rect);
//draw a circle
Ellipse2D cir = new Ellipse2D.Double();
cir.setFrameFromCenter(rect.getCenterX(), rect.getCenterY(), 300 + 100,
300 + 80);
g2.draw(cir);
}}