2014-02-14 63 views
-1

我被指派了这个问题,没有任何教导如何做到这一点,我无法自己弄清楚。我已经开始了,但我无法弄清楚要添加什么方法。创建方法在JFrame中绘制矩形和圆形?

下面是一个程序的主要方法,该程序在给定坐标处绘制圆形和方形。你的工作是编写代码的其余部分,但不能改变主要方法!您可以将方法添加到主驱动程序类中,但不能向以下主方法添加任何内容。

public static void main (String[] args){ 

JFrame picture = new JFrame("Circle and Square"); 
picture.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
picture.getContentPane().add(new Drawing(200, 50,100, 150)); 
picture.pack(); 
picture.setVisible(true); 

} 

前两个数字是rectange应该开始的高度和宽度,第二个数字是圆圈开始的高度和宽度。

//The following is my failure attempt, so at least you know I tried 
to figure something out. 

import javax.swing.*; 
import java.awt.*; 

public class Drawing extends JFrame 
{ 
int a, b, c, d; 
public Drawing(int x, int y, int z, int yeah) 
{ 
    setSize(400, 400); 
    a = x; 
    b = y; 
    c = z; 
    d = yeah; 
} 
public void paint(Graphics g) 
{ 
    super.paint(g); 
    g.drawRect(a, b, c, d); 
    g.drawOval(c, d, a, b); 
} 
public getContentPane() 
{ 

} 
//Can't change following class: 
public static void main (String[] args) 
{ 
    JFrame picture = new JFrame("Circle and Square"); 
    picture.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
    picture.getContentPane().add(new Drawing(200, 50, 100, 150)); 
    picture.pack(); 
    picture.setVisible(true); 
} 
} 

我知道我必须创建一个名为面板的东西,但我甚至都不知道该怎么做。我敢肯定,我可以对任何代码进行反向工程,并向我展示如何解决我的任务。谢谢。

+1

开始看看[使用JFC/Swing创建GUI](http://docs.oracle.com/javase/tutorial/uiswing/),[执行自定义绘画](http://docs.oracle.com/javase/tutorial/) uiswing/painting /),[2D图形](http://docs.oracle.com/javase/tutor ial/2d /) – MadProgrammer

+0

.-。 ............. – William

+1

阅读,阅读,阅读。不会对你的帮助将近一半。上面的所有链接将为您提供所需的信息,以解决此问题... – MadProgrammer

回答

0
  • getContentPane是一种方法JFrame,你不需要实现它。
  • Drawing不需要从JFrame延伸,它应该从JPanel延伸。
  • 不要致电setSize它什么都不会做。您需要覆盖getPreferredSize并返回您想要使用的首选大小。
  • 请勿覆盖paint,您应该使用paintComponent,但请拨打super.paint。但是当您将自定义绘画移动到paintComponent时,请改为拨打super.paintComponent

看看: - Creating a GUI With JFC/Swing - Performing Custom Painting - 2D Graphics

让您的文档或代码,该main方法是错误的,在票据应该通过采取考虑到Initial Threads