接下来演示java窗口显示在屏幕中间,并且当窗口尺寸改变时自动调整menuBar组件的宽度始终为窗口的宽度。
注意,监听此事件需要导入java.awt.event.ComponentAdapter和java.awt.event.ComponentEvent
package test;
import javax.swing.JFrame;
import javax.swing.JMenuBar;
import java.awt.event.ComponentAdapter;
import java.awt.event.ComponentEvent;
public class Test {
private JFrame frame;
private JMenuBar menuBar;
private int screenWidth;
private int screenHeight;
private int windowWidth = 800;
private int windowHeight = 500;
public static void main(String[] args) {
new Test();
}
public Test() {
frame = new JFrame();
frame.setBounds(0, 0, 1167, 740);
//自动将窗口放到屏幕正中间
frame.setBounds(getScreenWidth()/2-frame.getWidth()/2,getScreenHeight()/2-frame.getHeight()/2, windowWidth, windowHeight);
frame.setVisible(true);
menuBar = new JMenuBar();
menuBar.setBounds(0, 0, windowWidth, 21);
frame.getContentPane().add(menuBar);
//监听窗口尺寸改变事件
frame.addComponentListener(new ComponentAdapter() {
@Override
public void componentResized(ComponentEvent e) {
System.out.println("尺寸改变了!");
menuBar.setSize(frame.getWidth(), 21);
}
});
}
public int getScreenWidth(){
screenWidth = (int)java.awt.Toolkit.getDefaultToolkit().getScreenSize().width;
return screenWidth;
}
public int getScreenHeight(){
screenHeight = (int)java.awt.Toolkit.getDefaultToolkit().getScreenSize().height;
return screenHeight;
}
}
发表评论
抢沙发~