📄 hiereventdemo.java
字号:
import java.awt.*;import java.awt.event.*;import javax.swing.*;public class HierEventDemo extends JFrame{ private JButton button; private int frameInitWidth, frameInitHeight; private int buttonInitWidth, buttonInitHeight; public HierEventDemo() { buttonInitWidth = 70; buttonInitHeight = 70; frameInitWidth = 300; frameInitHeight = 200;/* A JButtons is placed on a JFrame. The button registers *//* a HierarchyBoundsListener. */ button = new JButton("Button"); button.setPreferredSize( new Dimension(buttonInitWidth, buttonInitHeight)); button.setBorder(BorderFactory.createRaisedBevelBorder()); button.addHierarchyBoundsListener(new HierBndsListener()); JPanel panel = new JPanel(); panel.add(button); getContentPane().add(panel); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setBounds(100, 100, frameInitWidth, frameInitHeight); setVisible(true); }/* A HierarchyBoundsListener is implemented as an inner class that *//* extends the HierarchyBoundsAdapter class. If the frame is *//* re-sized, HierarchyEvents generated by the button are sent to the *//* ancestorResized() method. This method resizes the button so its *//* size relative to the frame remains the same. */ class HierBndsListener extends HierarchyBoundsAdapter { public void ancestorResized(HierarchyEvent event) { Component top = event.getChanged(); JButton source = (JButton)event.getComponent(); int width = top.getWidth(); int height = top.getHeight(); source.setPreferredSize( new Dimension(buttonInitWidth*width/frameInitWidth, buttonInitHeight*height/frameInitHeight)); } } public static void main(String args[]) { HierEventDemo demo = new HierEventDemo(); }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -