各位高手,,这里有一个小程序,,程序很简单就是设一下标签的框,但是其中,我不懂的就是那里来的参数,,特别是那里的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.");
}
}
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.");
}
}
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货