【发布时间】:2017-10-05 14:33:35
【问题描述】:
我对此很陌生。当我手动更改 Jframe 边框大小时,它仍会在 "19201080" 处更新,我正在尝试获取实际的 Jframe 宽度和高度,因此我可以让我的 Circle 组件根据 jframe 屏幕大小更改大小,
CircleComponent 类
package advancedjava;
import java.awt.*;
import javax.swing.JComponent;
import java.awt.Toolkit;
import java.awt.geom.Ellipse2D;
import java.awt.geom.Ellipse2D.Double;
/**
*
* @author eeu8c6
*/
public class CircleComponent extends JComponent{
@Override
public void paintComponent(Graphics g){
Toolkit kit = Toolkit.getDefaultToolkit();
Dimension screenSize = kit.getScreenSize();
int width = screenSize.width;
int height = screenSize.height;
System.out.println("test: " + width + height);
double swidth = width * 0.8;
double sheight = height * 0.8;
Graphics2D g2 = (Graphics2D) g;
Circle c1 = new Circle(50, 50);
g2.setPaint(Color.RED);
c1.draw(g2);
Ellipse2D ellipse = new Ellipse2D.Double();
g2.fill(ellipse);
}
}
圈类:
package advancedjava;
import java.awt.*;
import java.awt.geom.*;
/**
*
* @author eeu8c6
*/
public class Circle {
private double xLeft;
private double xRight;
public Circle(double x, double y){
xLeft = x;
xRight = y;
}
public void draw(Graphics2D g2){
Ellipse2D.Double circle = new Ellipse2D.Double(xLeft, xRight, 400, 400);
g2.draw(circle);
}
【问题讨论】:
-
这是屏幕的大小——你的电脑显示器的像素。更重要的是,您应该先在 API 中查看此类问题,然后再提问,因为它们都已在 API 中得到解答。
标签: java swing jframe jcomponent screen-size