Dimension作用?

Dimension作用?

2009-04-03 20:22 timw6  |  分类:JAVA相关  |  浏览2495次
下面代码中的Dimension也没用到,Dimension到底什么作用?为什么和getPreferredSize()连用?



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


public class RadioButtonDemo extends JFrame implements ItemListener
{      
private JRadioButton jrbRed, jrbYellow, jrbGreen;
private ButtonGroup btg = new ButtonGroup();
private Light light;

public static void main(String[] args)
{     
RadioButtonDemo frame = new RadioButtonDemo();
frame.setSize(250, 170);
frame.setVisible(true);
}
  public RadioButtonDemo()
 {
   setTitle("RadioButton Demo");
   JPanel p1 = new JPanel();
   p1.setSize(200, 200);
   p1.setLayout(new FlowLayout(FlowLayout.CENTER));
   light = new Light();
   light.setSize(40, 90);
   p1.add(light);

   JPanel p2 = new JPanel();
   p2.setLayout(new FlowLayout());
   p2.add(jrbRed = new JRadioButton("Red", false));
   p2.add(jrbYellow = new JRadioButton("Yellow", false));
   p2.add(jrbGreen = new JRadioButton("Green", false));

   btg.add(jrbRed);
   btg.add(jrbYellow);
   btg.add(jrbGreen);  

   getContentPane().setLayout(new BorderLayout());
   getContentPane().add(p1, BorderLayout.CENTER);
   getContentPane().add(p2, BorderLayout.SOUTH);

   jrbRed.addItemListener(this);
 }

 public void itemStateChanged(ItemEvent e)
 {
   if (jrbRed.isSelected())
     light.turnOnRed(); 
 }
}

class Light extends JPanel
{
 private boolean red;
 
 private boolean yellow;
 private boolean green;


 public Light()
 {
   red = false;
   yellow = false;
   green = false;
 }

public void turnOnRed()
 {
   red = true;
   yellow = false;
   green = false;
   repaint();
 }

//    green = false;

 public void paintComponent(Graphics g)
 {
  super.paintComponent(g);
  if (red)
  {
     g.setColor(Color.red);
     g.fillOval(10, 10, 20, 20);
     g.setColor(Color.black);
     g.drawOval(10, 35, 20, 20);
     g.drawOval(10, 60, 20, 20);
     g.drawRect(5, 5, 30, 80);
   

       }
  public Dimension getPreferredSize()
  {
   return new Dimension(40, 90);
  }

}


Dimension 类封装单个对象中组件的宽度和高度(精确到整数)。该类与组件的某个属性关联。由 Component 类和 LayoutManager 接口定义的一些方法将返回 Dimension 对象。 

Dimension(int width, int height) 
          构造一个 Dimension,并将其初始化为指定宽度和高度。
评论  |  3  2

lovezsn1212 | 五级 采纳率41%


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值