真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

java中自定義邊框-創(chuàng)新互聯(lián)

自定義邊框,可以繼承AbstractBorder,需要實(shí)現(xiàn)三個(gè)方法

專注于為中小企業(yè)提供成都網(wǎng)站制作、成都網(wǎng)站設(shè)計(jì)服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)信州免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動(dòng)了超過千家企業(yè)的穩(wěn)健成長(zhǎng),幫助中小企業(yè)通過網(wǎng)站建設(shè)實(shí)現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。
public?boolean?isBorderOpaque() 此默認(rèn)實(shí)現(xiàn)返回false。
public?Insets?getBorderInsets?(Component?c)此默認(rèn)實(shí)現(xiàn)返回一個(gè)新Insetspublic?void?paintBorder?(Component?c,?Graphics?g, int?x, int?y, int?width, int?height) 繪制邊框

繪制邊框最主要是不要在組件區(qū)域內(nèi)繪制邊框,在給定的范圍內(nèi)繪制。如下圖:

在JComponent中畫邊框調(diào)用的代碼,傳入的是組件的寬和高,起點(diǎn)是0,0,所以說邊框的厚度在組件的寬高范圍內(nèi)。

protected void paintBorder(Graphics g) {
? ? ? ? Border border = getBorder();
? ? ? ? if (border != null) {
? ? ? ? ? ? border.paintBorder(this, g, 0, 0, getWidth(), getHeight());
? ? ? ? }
? ? }

自定義了一個(gè)邊框,上下一個(gè)顏色,左右黑色的。代碼如下:

import java.awt.Color;
import java.awt.Component;
import java.awt.Graphics;
import java.awt.Insets;

import javax.swing.border.AbstractBorder;

public class MyBorder extends AbstractBorder
{

	private int thickless;
	private Color color;
	
	public void paintBorder(Component c, Graphics g, int x, int y, int width, int height)
	{
		Insets insets = getBorderInsets(c);
		Color c1 = g.getColor();
		g.setColor(color);
		g.fillRect(x, y, width, insets.top);
		g.fillRect(x, y + height-insets.bottom, width, insets.bottom);
		g.setColor(Color.BLACK);
		g.fillRect(x, y + insets.top, x+insets.left, y + height-insets.top);
		g.fillRect(x+width-insets.right, y+insets.top, insets.right, height-insets.top-insets.bottom);
		g.setColor(c1);
	}

	public MyBorder(int thickless, Color color)
	{
		super();
		this.thickless = thickless;
		this.color = color;
	}

	@Override
	public Insets getBorderInsets(Component c)
	{
		
		return new Insets(thickless,thickless,thickless,thickless);
	}

	@Override
	public boolean isBorderOpaque()
	{
		
		return true;
	}

}

測(cè)試代碼如下:

JPanel jpa = new JPanel(new GridLayout(1,2));
		jpa.setPreferredSize(new  Dimension(400,80));
		MyBorder eb = new MyBorder(5,Color.red);
		MyBorder eb1 = new MyBorder(10,Color.BLUE);
		JButton jb = new JButton("red");
		jb.setBorder(eb);
		jpa.add(jb);
		JButton jb1 = new JButton("blue");
		jb1.setBorder(eb1);
		jb1.setSize(150,80);
		jpa.add(jb1);
		add(jpa);

效果如下:

由于水平有限,如果有錯(cuò)誤,請(qǐng)大家多多指導(dǎo),提高水平,共同學(xué)習(xí)。

你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級(jí)服務(wù)器適合批量采購(gòu),新人活動(dòng)首月15元起,快前往官網(wǎng)查看詳情吧


本文標(biāo)題:java中自定義邊框-創(chuàng)新互聯(lián)
分享地址:http://weahome.cn/article/dihogs.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部