swing 圓角按鈕 JFrame實現圓角窗體

2021-10-12 14:08:57 字數 824 閱讀 5013

現在開發乙個窗體程式,經常要求用圓角窗體。而在windows 經典外觀下,直接寫出來的窗體卻是方型的。在windows 7、windows server2008 的外觀下,就已經是圓角的了。

這裡我們手動實現圓角,從而與系統外觀不相關。

通過sun的內部api(包含在jdk中)來實現。這裡只需呼叫乙個方法就ok:

awtutilities.setwindowshape(win,

new roundrectangle2d.double(0.0d, 0.0d, win.getwidth(),

win.getheight(), 6.0d, 6.0d));

其中win即為要實現圓角的窗體。

在實際顯示窗體時,發現始終還是顯示的是方角(非win7和server2008);原來jframe在預設情況下是使用本地預設的外觀來繪製自己的外觀的。所以這裡要實現方角就要禁用本地外觀。通過如下來方法設定:

jframe.setdefaultlookandfeeldecorated(true);

注意:該方法必須在定義窗體置前呼叫,否則將不起作用。

通過該方法設定後,jdk將採用跨平台的外觀繪製窗體,從而上面設定圓角窗體的方法也起作用了。

完整**如下:

public class jroundframe extends jframe else {

/** 設定圓角 */

awtutilities.setwindowshape(win,

new roundrectangle2d.double(0.0d, 0.0d, win.getwidth(),

win.getheight(), 26.0d, 26.0d));

圓角布局或者圓角按鈕

新增shape.xml encoding utf 8 xmlns android android color ffa500 android topleftradius 3dp android toprightradius 0dp android bottomrightradius 0dp andro...

swing中如何實現JFrame為模態視窗

在swing中,當連個畫面都是繼承jframe的時候,如何將將其中乙個畫面設為另乙個畫面的模態視窗呢?本人總結了一下個人的經驗,以供交流。父畫面 父畫面在開啟子畫面的時候,setenabled false 同時將自己的引用傳給模態畫面 模態畫面 模態畫面實現window事件如下 public voi...

花裡胡哨的圓角按鈕 RadiusButton

建立radiusbutton繼承自button,重寫onpaint 獲取graphics,建立圓角按鈕outer路徑,用bordercolor填充內部區域 建立inner路徑,用buttoncolor填充內部區域 繪製按鈕的text 建立圓角路徑 private graphicspath getro...