在这里插入代码片
package My;
import java.awt.Component;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.LayoutManager;
import javax.swing.JButton;
import javax.swing.JFrame;
public class Swing0722 {
public static void main(String[] args) {
new Window();
}
}
class Window{
JFrame frame;
JButton btn;
Window(){
frame = new JFrame();//建一个窗口
frame.setSize(414, 337);//窗口大小,宽:414,高:337
frame.setLayout(new Layout());//Layout类是Window类里内部类,实现了LayoutManager接口,也就是我自己定义自己的布局管理器,
//setLayout()函数需要一个LayoutManager做参数
//setLayout()函数原型如下:
// public void setLayout(LayoutManager manager) {
// if(isRootPaneCheckingEnabled()) {
// getContentPane().setLayout(manager);
// }
// else {
// super.setLayout(manager);
// }
// }
btn = new JButton("here");//创建一个按钮
frame.add(btn);//将按钮添加进窗口
frame.setVisible(true);//让窗口显示
frame.setLocationRelativeTo(null);//设置窗口居于屏幕中间显示
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
class Layout implements LayoutManager{//控件自适应窗口大小,需要实现layoutManager接口
@Override
public void addLayoutComponent(String name, Component comp) {
// TODO Auto-generated method stub
}
@Override
public void removeLayoutComponent(Component comp) {
// TODO Auto-generated method stub
}
@Override
public Dimension preferredLayoutSize(Container parent) {
// TODO Auto-generated method stub
return null;
}
@Override
public Dimension minimumLayoutSize(Container parent) {
// TODO Auto-generated method stub
return null;
}
@Override
public void layoutContainer(Container parent) {
// TODO Auto-generated method stub
int w = parent.getWidth();//parent.getWidth()是在拉伸窗口时获得窗口的宽
int h = parent.getHeight();//parent.getHeight()是在拉伸窗口是获得窗口的高
double x = w*(10.0/400);//10代表按钮的x=10
double y = h*(10.0/300);//10代表按钮的y=10
double btnw = 61.0/400*w;//61代表按钮的宽=61
double btnh = 28.0/300*h;//28代表按钮的高=28
//上面四行代码用下面一张图片解释
btn.setBounds((int)x, (int)y, (int)btnw, (int)btnh);
}
}
}
Swing 如何让按钮自适应窗口大小
最新推荐文章于 2024-04-24 22:51:49 发布