java不能是用jframe_JAVA无法从另一个类中绘制到JFrame

我知道这是我的错误。我的问题是,为什么这不起作用,我想念的是什么,我可以称其为方法而不是类,因此我假设他们的第三类有问题吗?

第1类:

package assignment.pkg1.java;

import java.awt.Color;

import javax.swing.JFrame;

public class JVMVeiwer {

/**

* @param args the command line arguments

*/

public static void main(String[] args) {

final int FRAME_WIDTH = 1000; // Frame Width

final int FRAME_HEIGHT = 800; // Frame Height

JFrame frame = new JFrame();

frame.setSize(FRAME_WIDTH, FRAME_HEIGHT); //Sets Frame Size

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

frame.setTitle("JVM Diagram");// Sets the Title

JVMComponent component = new JVMComponent();

frame.setBackground(Color.WHITE);

frame.add(component); // adds the diagram to the JFrame

frame.setVisible(true); // Makes the frame visible

}

}

第2类:

package assignment.pkg1.java;

import java.awt.*;

import javax.swing.JComponent;

public class JVMComponent extends JComponent {

@Override

public void paintComponent(Graphics g) {

super.paintComponent(g);

Graphics2D g2 = (Graphics2D) g; // recover the graphic

JVMDiagram diagram = new JVMDiagram(); // creates an instance of JVM Diagram

diagram.draw(g2);

}

}

第3类,这是我不能在jframe上使用的绘画:

package assignment.pkg1.java;

import java.awt.Color;

import java.awt.Graphics2D;

import javax.swing.JComponent;

public class JVMDiagram {

// Constructor

public JVMDiagram() {

}

// Draw method for shape

public void draw(Graphics2D g2) {

// Detailed instructions to draw shape

int x = getWidth();

int y = getHeight();

int temp, temp2;

int width = x / 2;

int height = x / 2;

x = (x - width) / 2;

y= (y - height) / 2;

g2.setColor(Color.RED);

g2.drawOval(x, y, width, height);

g2.drawRect(x, y, width, height);

g2.setColor(Color.RED);

g2.drawLine(x, y, width + x, height + y);

g2.drawRoundRect(x, y, width, height, y, y);

g2.drawLine(x + width, y, x, height + y);

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值