現在開發乙個窗體程式,經常要求用圓角窗體。而在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...