关于swing的问题
import javax.swing.JPanel;
import java.awt.*;
public class FigurePanel extends JPanel{
public static final int LINE = 1;
public static final int RECTANGLE = 2;
public static final int ROUND_RECTANGLE = 3;
public static final int OVAL = 4;
private int type = 1;
private boolean filled = false;
public FigurePanel(){
}
public FigurePanel(int type){
this.type = type;
}
public FigurePanel(int type,boolean filled){
this.type = type;
this.filled = filled;
}
protected void paintComponent(Graphics g)
{
super.paintComponent(g);
int width = getWidth();
int height = getHeight();
switch(type){
case LINE:
g.setColor(Color.BLACK);
g.drawLine(10, 10, width-10, height-10);
g.drawLine(width-1, 10, 10, height-10);
break;
case RECTANGLE:
g.setColor(Color.BLUE);
if(filled)
g.fillRect((int)(0.1*width), (int)(0.1*height), (int)(0.8*width), (int)(0.8*height));
else
g.drawRect((int)(0.1*width), (int)(0.1*height), (int)(0.8*width), (int)(0.8*height));
break;
case ROUND_RECTANGLE:
g.setColor(Color.RED);
if(filled)
g.fillRoundRect((int)(0.1*width), (int)(0.1*height), (int)(0.8*width), (int)(0.8*height),20,20);
else
g.drawRoundRect((int)(0.1*width), (int)(0.1*height), (int)(0.8*width), (int)(0.8*height),20,20);
case OVAL:
if(filled)
g.fillOval((int)(0.1*width), (int)(0.1*height), (int)(0.8*width), (int)(0.8*height));
else
g.drawOval((int)(0.1*width), (int)(0.1*height), (int)(0.8*width), (int)(0.8*height));
}
}
public void seyType(int type){
this.type = type;
repaint();
}
public int getType(){
return type;
}
public void setFilled(boolean filled){
this.filled = filled;
}
public boolean getFilled(){
return filled;
}
public Dimension getPreferredSize(){
return new Dimension(80,80);
}
}
这个类的width和height都没有初始化,为什么能画出图形呢?,还有那个Dimension这个东西用来做什么的,注释掉也能运行,结果都一样
import java.awt.*;
public class FigurePanel extends JPanel{
public static final int LINE = 1;
public static final int RECTANGLE = 2;
public static final int ROUND_RECTANGLE = 3;
public static final int OVAL = 4;
private int type = 1;
private boolean filled = false;
public FigurePanel(){
}
public FigurePanel(int type){
this.type = type;
}
public FigurePanel(int type,boolean filled){
this.type = type;
this.filled = filled;
}
protected void paintComponent(Graphics g)
{
super.paintComponent(g);
int width = getWidth();
int height = getHeight();
switch(type){
case LINE:
g.setColor(Color.BLACK);
g.drawLine(10, 10, width-10, height-10);
g.drawLine(width-1, 10, 10, height-10);
break;
case RECTANGLE:
g.setColor(Color.BLUE);
if(filled)
g.fillRect((int)(0.1*width), (int)(0.1*height), (int)(0.8*width), (int)(0.8*height));
else
g.drawRect((int)(0.1*width), (int)(0.1*height), (int)(0.8*width), (int)(0.8*height));
break;
case ROUND_RECTANGLE:
g.setColor(Color.RED);
if(filled)
g.fillRoundRect((int)(0.1*width), (int)(0.1*height), (int)(0.8*width), (int)(0.8*height),20,20);
else
g.drawRoundRect((int)(0.1*width), (int)(0.1*height), (int)(0.8*width), (int)(0.8*height),20,20);
case OVAL:
if(filled)
g.fillOval((int)(0.1*width), (int)(0.1*height), (int)(0.8*width), (int)(0.8*height));
else
g.drawOval((int)(0.1*width), (int)(0.1*height), (int)(0.8*width), (int)(0.8*height));
}
}
public void seyType(int type){
this.type = type;
repaint();
}
public int getType(){
return type;
}
public void setFilled(boolean filled){
this.filled = filled;
}
public boolean getFilled(){
return filled;
}
public Dimension getPreferredSize(){
return new Dimension(80,80);
}
}
这个类的width和height都没有初始化,为什么能画出图形呢?,还有那个Dimension这个东西用来做什么的,注释掉也能运行,结果都一样
...全文
相关推荐
解决swing白屏问题的jjre
标题提到的“解决swing白屏问题的jjre”可能是一个专门针对这种问题的优化过的JRE版本。Swing白屏问题可能由以下几个原因引起:1.
graalvm编译swing失败问题处理
标题 "graalvm编译swing失败问题处理" 涉及到的是在使用GraalVM进行Java Swing应用的编译时遇到的问题及其解决方法。
java swing 做的迷宫问题升级版
在这个"java swing 做的迷宫问题升级版"项目中,我们将深入探讨如何利用Swing构建一个迷宫游戏,并对其进行升级优化。首先,迷宫问题是一个典型的算法问题,涉及到路径查找和数据结构。
迷宫问题 java swing
【迷宫问题与Java Swing应用】迷宫问题是一种经典的计算机科学问题,涉及到路径搜索和算法设计。
java背包问题(swing界面)
在本项目中,开发者利用Java Swing库构建了一个图形用户界面(GUI),使得用户能够直观地解决背包问题。


