900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > Java swing 自定义窗口最大 最小和关闭的极简方法

Java swing 自定义窗口最大 最小和关闭的极简方法

时间:2024-01-28 12:02:12

相关推荐

Java swing 自定义窗口最大 最小和关闭的极简方法

Java swing 自定义窗口最大、最小和关闭的极简方法,

直接代码伺候:

package com.yufu.test;

import java.awt.EventQueue;

import javax.swing.JFrame;

import javax.swing.JPanel;

import javax.swing.JToggleButton;

import javax.swing.border.EmptyBorder;

import javax.swing.JButton;

import java.awt.event.ItemListener;

import java.awt.event.ItemEvent;

import javax.swing.ImageIcon;

import java.awt.event.ActionListener;

import java.awt.event.ActionEvent;

public class 鸡精简 extends JFrame {

/*** @author boloyufu*/private static final long serialVersionUID = -4237601758415925694L;private JPanel contentPane;/*** Launch the application.*/public static void main(String[] args) {EventQueue.invokeLater(new Runnable() {public void run() {try {鸡精简 frame = new 鸡精简();frame.setVisible(true);} catch (Exception e) {e.printStackTrace();}}});}/*** 创建一个极精简的窗体不附带其他功能*/public 鸡精简() {setUndecorated(true); //先要禁用窗口原部件setTitle("自定义窗口放大放小");setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);setBounds(250, 250, 450, 300);contentPane = new JPanel();contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));setContentPane(contentPane);JToggleButton btn_big = new JToggleButton(""); //一定要用JToggleButton类,因为它表示了开关的2种状态,才可以用下面的//ItemEvent、getStateChange()的监听及方法btn_big.setIcon(new ImageIcon(鸡精简.class.getResource("/com/yufu/test/images/big01.png")));btn_big.setSelectedIcon(new ImageIcon(鸡精简.class.getResource("/com/yufu/test/images/big11.png")));btn_big.setRolloverSelectedIcon(new ImageIcon(鸡精简.class.getResource("/com/yufu/test/images/big11.png")));btn_big.setRolloverIcon(new ImageIcon(鸡精简.class.getResource("/com/yufu/test/images/big11.png")));btn_big.setBounds(46, 3, 22, 22);btn_big.addItemListener(new ItemListener() {public void itemStateChanged(ItemEvent e) {aaaa(e);需要自定义执行的最大化执行方法}private void aaaa(ItemEvent e) { //自定义的方法if (e.getStateChange() == ItemEvent.SELECTED) {setExtendedState(JFrame.MAXIMIZED_BOTH);// 最大化窗体} else {setExtendedState(JFrame.NORMAL);// 恢复普通窗体状态}}});contentPane.setLayout(null);contentPane.add(btn_big);JButton btn_close = new JButton("");btn_close.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {dispose(); //关闭窗口}});btn_close.setIcon(new ImageIcon(鸡精简.class.getResource("/com/yufu/test/images/close1.png")));btn_close.setBounds(4, 3, 22, 22);contentPane.add(btn_close);JButton btn_small = new JButton("");btn_small.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {setExtendedState(JFrame.ICONIFIED);//最小化窗口}});btn_small.setIcon(new ImageIcon(鸡精简.class.getResource("/com/yufu/test/images/small1.png")));btn_small.setBounds(25, 3, 22, 22);contentPane.add(btn_small);}

}

效果图:

点击最大化时图标直接变成自设的最大化提醒图标:

最大化时的样子:

再次点击恢复原来尺寸的大小:

则缩小到任务栏:

点击关闭,则关闭窗口。

本实例是最精简化的一个实例,不具备鼠标拖动窗口功能。若要实现鼠标拖动窗口功能,请参阅其他文章和实例。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。