Câu hỏi rất đơn giản nhưng tôi không thể làm được. Tôi có 3 lớp:truy cập biến từ một lớp khác
DrawCircle
lớp
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
class DrawCircle extends JPanel
{
private int w, h, di, diBig, diSmall, maxRad, xSq, ySq, xPoint, yPoint;
public DrawFrame d;
public DrawCircle()
{
w = 400;
h = 400;
diBig = 300;
diSmall = 10;
maxRad = (diBig/2) - diSmall;
xSq = 50;
ySq = 50;
xPoint = 200;
yPoint = 200;
}
public void paintComponent(Graphics g)
{
super.paintComponent(g);
g.setColor(Color.blue);
g.drawOval(xSq, ySq, diBig, diBig);
for(int y=ySq; y<ySq+diBig; y=y+diSmall*2)
{
for(int x=xSq; x<w-xSq; x=x+diSmall)
{
if(Math.sqrt(Math.pow(yPoint-y,2) + Math.pow(xPoint-x, 2))<= maxRad)
{
g.drawOval(x, y, diSmall, diSmall);
}
}
}
for(int y=ySq+10; y<ySq+diBig; y=y+diSmall*2)
{
for(int x=xSq+5; x<w-xSq; x=x+diSmall)
{
if(Math.sqrt(Math.pow(yPoint-y,2) + Math.pow(xPoint-x, 2))<= maxRad)
{
g.drawOval(x, y, diSmall, diSmall);
}
}
}
}
}
DrawFrame
lớp
public class DrawFrame extends JFrame
{
public DrawFrame()
{
int width = 400;
int height = 400;
setTitle("Frame");
setSize(width, height);
addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
});
Container contentPane = getContentPane();
contentPane.add(new DrawCircle());
}
}
CircMain
lớp
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class CircMain
{
public static void main(String[] args)
{
JFrame frame = new DrawFrame();
frame.show();
}
}
Một lớp tạo ra một khung, một lớp khác vẽ một vòng tròn và lấp đầy nó với các vòng tròn nhỏ hơn. Trong DrawFrame
Tôi đặt chiều rộng và chiều cao. Trong DrawCircle
Tôi cần truy cập chiều rộng và chiều cao của DrawFrame
. Làm thế nào để tôi làm điều này?
Tôi đã thử tạo một đối tượng và thử sử dụng .getWidth
và .getHeight
nhưng không thể làm cho nó hoạt động. Tôi cần mã cụ thể ở đây vì tôi đã thử rất nhiều thứ nhưng không thể làm cho nó hoạt động được. Tôi có khai báo chiều rộng và chiều cao sai trong DrawFrame
không? Đang tạo đối tượng theo cách sai trong DrawCircle
?
Ngoài ra, các biến tôi sử dụng trong DrawCircle
, tôi có nên sử dụng chúng trong hàm tạo hay không?
Bạn đã cố gắng tạo một đối tượng của lớp học nào? – Tom