-
设置JFrame居屏幕中央:mainFrame.setLocationRelativeTo(null);
-
设置JFrame退出:mainFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
-
设置JFrame可见:mainFrame.setVisible(true);
-
设置JFrame背景图片
public class JFrameBackground {
private JFrame frame = new JFrame(“背景图片测试”);
private JPanel imagePanel;
private ImageIcon background;
public static void main(String[] args) {
new JFrameBackground();
}
public JFrameBackground() {
background = new ImageIcon(“003.jpg”);// 背景图片
JLabel label = new JLabel(background);// 把背景图片显示在一个标签里面
// 把标签的大小位置设置为图片刚好填充整个面板
label.setBounds(0, 0, background.getIconWidth(),
background.getIconHeight());
// 把内容窗格转化为JPanel,否则不能用方法setOpaque()来使内容窗格透明
imagePanel = (JPanel) frame.getContentPane();
imagePanel.setOpaque(false);
// 内容窗格默认的布局管理器为BorderLayout
imagePanel.setLayout(new FlowLayout());
imagePanel.add(new JButton(“测试按钮”));
frame.getLayeredPane().setLayout(null);
// 把背景图片添加到分层窗格的最底层作为背景
frame.getLayeredPane().add(label, new Integer(Integer.MIN_VALUE));
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(background.getIconWidth(), background.getIconHeight());
frame.setResizable(false);
frame.setVisible(true);
}
}
- 监听JFrame窗口大小改变的方法:
frame.addComponmentListener(new ComponentAdapter(){
@Override public void componentResized(ComponentEvent e){
// write you code here
}});
2. GridBagLayout(最难布局),需要配合GridBagConstraints使用:
-
gridx和gridy: 设置Component在网格中的横向和纵向位置。
-
gridwidth和gridheight:设置Component能在横向和纵向横跨多少个网格。
-
fill:控制Component如何填充网格的区域:
NONE、HORIZONTAL 、VERTICAL 、BOTH 。
-
ipadx和ipady:设置Component的内部填充大小,即在Component的最小大小上还需要加多少
-
insets:外部填充大小,类似于Border
-
weightx和weighty:设置在横向和纵向的占用比重。
当窗口大小改变的时候,可以使用这两个属性来控制Component随着窗口变化时,Component大小的变化比率。
两个属性的默认值为0,取值范围[0.0, 1.0]。
窗口大小变化时,比较同一行或者同一列中不同Component所对应的值的比值。
3. JButton
- 去掉外面那层样式,现在这个按钮就像文本一样:registeredAccountBtn.setContentAreaFilled(false);
4. JPasswordField
- 设置明文显示文字:passwordTextField.setEchoChar(‘\0’);
总结
上述知识点,囊括了目前互联网企业的主流应用技术以及能让你成为“香饽饽”的高级架构知识,每个笔记里面几乎都带有实战内容。
很多人担心学了容易忘,这里教你一个方法,那就是重复学习。
打个比方,假如你正在学习 spring 注解,突然发现了一个注解@Aspect,不知道干什么用的,你可能会去查看源码或者通过博客学习,花了半小时终于弄懂了,下次又看到@Aspect 了,你有点郁闷了,上次好像在哪哪哪学习,你快速打开网页花了五分钟又学会了。
从半小时和五分钟的对比中可以发现多学一次就离真正掌握知识又近了一步。
人的本性就是容易遗忘,只有不断加深印象、重复学习才能真正掌握,所以很多书我都是推荐大家多看几遍。哪有那么多天才,他只是比你多看了几遍书。
花了半小时终于弄懂了,下次又看到@Aspect 了,你有点郁闷了,上次好像在哪哪哪学习,你快速打开网页花了五分钟又学会了。
从半小时和五分钟的对比中可以发现多学一次就离真正掌握知识又近了一步。
[外链图片转存中…(img-Dkds6w6B-1714308821619)]
人的本性就是容易遗忘,只有不断加深印象、重复学习才能真正掌握,所以很多书我都是推荐大家多看几遍。哪有那么多天才,他只是比你多看了几遍书。