- 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); }}