各位高手,,这里有一个小程序,,程序很简单就是设一下标签的框,但是其中,我不懂的就是那里来的参数,,特别是那里的X,Y是那里来的,还有高宽,paintBorder(Component c, Graphics g, int x, int y, int width, int height)那位高手帮我看看谢谢了,,这个方法到底是怎么回事儿呀?下面是源带码:1窗体的
package jlabeldemo1;import java.awt.*;
import java.awt.event.*;
import javax.swing.*;/**
 * <p>Title: </p>
 * <p>Description: </p>
 * <p>Copyright: Copyright (c) 2002</p>
 * <p>Company: </p>
 * @author unascribed
 * @version 1.0
 */public class MainFrame extends JFrame {
  private JPanel contentPane;
  private GridLayout gridLayout1 = new GridLayout();
  private JLabel jLabel1 = new JLabel();
  private JLabel jLabel2 = new JLabel();
  private JLabel jLabel3 = new JLabel();
  private JLabel jLabel4 = new JLabel();
  private JLabel jLabel5 = new JLabel();
  private JLabel jLabel6 = new JLabel();  //Construct the frame
  public MainFrame() {
    enableEvents(AWTEvent.WINDOW_EVENT_MASK);
    try {
      jbInit();
    }
    catch(Exception e) {
      e.printStackTrace();
    }
  }
  //Component initialization
  private void jbInit() throws Exception  {
    //setIconImage(Toolkit.getDefaultToolkit().createImage(MainFrame.class.getResource("[Your Icon]")));
    contentPane = (JPanel) this.getContentPane();
    jLabel1.setFont(new java.awt.Font("Dialog", 0, 14));
    jLabel1.setHorizontalAlignment(SwingConstants.CENTER);
    jLabel1.setText("jLabel1");
    gridLayout1.setColumns(3);
    gridLayout1.setRows(2);
    contentPane.setLayout(gridLayout1);
    this.setSize(new Dimension(465, 219));
    this.setTitle("JLabelDemo1");
    jLabel2.setFont(new java.awt.Font("Dialog", 0, 14));
    jLabel2.setHorizontalAlignment(SwingConstants.CENTER);
    jLabel2.setText("jLabel2");
    jLabel3.setFont(new java.awt.Font("Dialog", 0, 14));
    jLabel3.setHorizontalAlignment(SwingConstants.CENTER);
    jLabel3.setText("jLabel3");
    jLabel4.setFont(new java.awt.Font("Dialog", 0, 14));
    jLabel4.setHorizontalAlignment(SwingConstants.CENTER);
    jLabel4.setText("jLabel4");
    jLabel5.setFont(new java.awt.Font("Dialog", 0, 14));
    jLabel5.setHorizontalAlignment(SwingConstants.CENTER);
    jLabel5.setText("jLabel5");
    jLabel6.setFont(new java.awt.Font("Dialog", 0, 14));
    jLabel6.setHorizontalAlignment(SwingConstants.CENTER);
    jLabel6.setText("jLabel6");
    jLabel1.setBorder(new OwnBorder(10,Color.blue));
    jLabel2.setBorder(new OwnBorder(15,Color.red));
    jLabel3.setBorder(new OwnBorder(20,Color.orange));
    jLabel4.setBorder(new OwnBorder(25,Color.yellow));
    jLabel5.setBorder(new OwnBorder(30,Color.green));
    jLabel6.setBorder(new OwnBorder(35,Color.white));
    contentPane.add(jLabel1, null);
    contentPane.add(jLabel2, null);
    contentPane.add(jLabel3, null);
    contentPane.add(jLabel4, null);
    contentPane.add(jLabel5, null);
    contentPane.add(jLabel6, null);
  }
  //Overridden so we can exit when window is closed
  protected void processWindowEvent(WindowEvent e) {
    super.processWindowEvent(e);
    if (e.getID() == WindowEvent.WINDOW_CLOSING) {
      System.exit(0);
    }
  }} 
2:类的那个方法就在这里
package jlabeldemo1;import javax.swing.border.Border;
import java.awt.Component;
import java.awt.Graphics;
import java.awt.Insets;
import java.awt.Color;
/**
 * <p>Title: </p>
 * <p>Description: </p>
 * <p>Copyright: Copyright (c) 2002</p>
 * <p>Company: </p>
 * @author unascribed
 * @version 1.0
 */public class OwnBorder implements Border {
  private int thickness; //边界的线条的厚度
  private Color color;  //边界的颜色
  public OwnBorder(int thickness , Color color) {
    this.thickness=thickness;
    this.color=color;
  }
  public void paintBorder(Component c, Graphics g, int x, int y, int width, int height) {
    /**@todo Implement this javax.swing.border.Border method*/
    g.setColor(this.color); //设定颜色
    g.fill3DRect(x,y,width-thickness,thickness,true); //绘制上边界
    g.fill3DRect(x,y+thickness,thickness,height-thickness,true); //绘制左边界
    g.fill3DRect(x+thickness,y+height-thickness,width-thickness,thickness,true); //绘制下边界
    g.fill3DRect(x+width-thickness,y,thickness,height-thickness,true); //绘制右边界 //   throw new java.lang.UnsupportedOperationException("Method paintBorder() not yet implemented.");
  }
  public Insets getBorderInsets(Component c) {
    /**@todo Implement this javax.swing.border.Border method*/
    return new Insets(thickness,thickness,thickness,thickness);
 //   throw new java.lang.UnsupportedOperationException("Method getBorderInsets() not yet implemented.");
  }
  public boolean isBorderOpaque() {
    /**@todo Implement this javax.swing.border.Border method*/
    return true;
 //   throw new java.lang.UnsupportedOperationException("Method isBorderOpaque() not yet implemented.");
  }
}