当前位置: 代码迷 >> Eclipse >> Graphics g如何又画不出来了,求解释
  详细解决方案

Graphics g如何又画不出来了,求解释

热度:757   发布时间:2016-04-23 13:36:15.0
Graphics g怎么又画不出来了,求解释
Java code
import javax.swing.*;import java.awt.*;public class Gck extends JPanel {    private JFrame frame;    private JPanel panel;    private JButton start,out;    public Gck(){        panel = new JPanel(null);        start=new JButton("start");        out=new JButton("out");        start.setLocation(10, 10);        start.setSize(70, 30);        out.setLocation(90, 10);        out.setSize(70, 30);        frame=new JFrame("**");            panel.add(start);        panel.add(out);        frame.add(panel);        frame.setSize(410, 550);        frame.setLocation(200, 200);        frame.setVisible(true);        }    public void paintComponent(Graphics g){        super.paintComponent(g);        g.setColor(Color.BLACK);        g.fillRect(10, 50, 370,450);    }    public static void main(String[] args) {        new Gck();    }}

求解释,求解决方法

------解决方案--------------------
之前给你调了类似的程序了,真的不知道你要干什么,不就是画个矩形么,找到一种合理设计的方案就OK了,老是弄出来这么不合常理的程序,没看到有任何的价值,你要这么的一个思维学编程那就危险了。
这个程序完全就是彻底垃圾设计的,即便勉强调通了也没有什么实际意义。
你又写这个Gck是什么目的,我想不通
你Gck继承自JPanel是什么目的?
 一个继承自JPanel的类构造的时候有个JFrame,而且JFrame其实是真正要显示的组件,那你继承JPanel是干什么呢?
之所以不会绘制矩形,就是程序从始至终都没有调用过paintComponent方法,JPanel的paintComponent什么时候会被自动调用呢?
------解决方案--------------------
Graphics简单说是一个画布。将需要的东西往这个画布上写。写入图片DRAWIMG 写入文字DRAWSTRING 写完以后应该输出的。IMAGIO.WRITE();把需要处理的即处理后的的参数写入WRITE里面
------解决方案--------------------
楼主,你的思维有问题,请用面向对象的思维来思考这个问题。
你的目的是画一个矩形。
那首先你需要 一个对象,矩形。
其次,需要放这个矩形的容器对象。
最后需要框架对象。


------解决方案--------------------
Java code
package com.kay;import java.awt.Color;import java.awt.EventQueue;import java.awt.Graphics;import java.awt.Graphics2D;import java.awt.geom.Rectangle2D;import java.awt.geom.Rectangle2D.Double;import javax.swing.JComponent;import javax.swing.JFrame;import javax.swing.JPanel;public class Gck {    /**     * @param args     */    public static void main(String[] args) {        // TODO Auto-generated method stub            EventQueue.invokeLater(new Runnable(){                public void run(){                    DrawFrame1 fram=new DrawFrame1();                    fram.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);                    fram.setVisible(true);                }            });    }}class DrawFrame1 extends JFrame{    public DrawFrame1(){        setTitle("Gck");        setSize(D_W,D_H);        DrawPanel dp=new DrawPanel();        add(dp);    }    public static final int D_W=400;    public static final int D_H=400;}class DrawPanel extends JPanel{    public void paintComponent(Graphics g){        Graphics2D g2=(Graphics2D) g;        double leftx=100;        double topy=100;        double width=200;        double height=150;        Rectangle2D rect=new Rectangle2D.Double(leftx,topy,width,height);        g2.draw(rect);    }}
  相关解决方案