在 Java Swing 中建立形狀視窗


藉助 JDK 7,我們可以非常輕鬆地使用 swing 建立形狀視窗。以下是要製作形狀視窗的步驟。

 向框架新增元件監聽器並覆蓋 componentResized() 來更改框架的形狀。無論何時更改視窗大小,此方法都會正確地重新計算框架的形狀。

frame.addComponentListener(new ComponentAdapter() {
   @Override
   public void componentResized(ComponentEvent e) {
      frame.setShape(new  RoundRectangle2D.Double(0,0,frame.getWidth(),
      frame.getHeight(), 20, 20));
   }
});

示例

請參見以下形狀視窗示例。

import java.awt.Color;
import java.awt.GridBagLayout;
import java.awt.event.ComponentAdapter;
import java.awt.event.ComponentEvent;
import java.awt.geom.Ellipse2D;
import java.awt.geom.RoundRectangle2D;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.SwingUtilities;

public class Tester {
   public static void main(String[] args)  {
      JFrame.setDefaultLookAndFeelDecorated(true);
      // Create the GUI on the event-dispatching thread
      SwingUtilities.invokeLater(new Runnable() {
         @Override
         public void run() {
            createWindow();                      
         }
      });
   }

   private static void createWindow() {          
      JFrame frame = new JFrame("Rounded Shaped Window");
      frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      createUI(frame);
      frame.setVisible(true);          
   }

   private static void createUI(final JFrame frame) {
      frame.setLayout(new GridBagLayout());
      frame.setSize(200, 200);            
      frame.setLocationRelativeTo(null);              
      frame.add(new JButton("Hello World"));  

      frame.addComponentListener(new ComponentAdapter() {
         @Override
         public void componentResized(ComponentEvent e) {
            frame.setShape(new  RoundRectangle2D.Double(0,0,frame.getWidth(),
               frame.getHeight(), 20, 20));
         }
      });
   }
}

輸出

更新於: 2020 年 6 月 19 日

805 次瀏覽

開啟您的 職業生涯

透過完成課程獲得認證

開始
廣告