重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
答: 很多时候做java图形界面时, 都会觉得外观和皮肤需要改进美化, 所以通常会去掉边框. 然后自定义边框, 但是副作用就是右上角的 最小化, 最大化, 关闭 按钮没有了, 需要我们自己写3个按钮去实现 这些功能.
为彝良等地区用户提供了全套网页设计制作服务,及彝良网站建设行业解决方案。主营业务为成都网站建设、成都网站制作、彝良网站设计,以传统方式定制建设网站,并提供域名空间备案等一条龙服务,秉承以专业、用心的态度为用户提供真诚的服务。我们深信只要达到每一位用户的要求,就会得到认可,从而选择与我们长期合作。这样,我们也可以走得更远!
最小化核心代码
jframe.setExtendedState(JFrame.ICONIFIED);//窗口最小化
效果图
参考代码
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class JTFDemo extends JFrame implements ActionListener{
JButton jb1,jb2,jb3;
public JTFDemo() {
JPanel jp = new JPanel(new FlowLayout(FlowLayout.RIGHT));//流式布局,从右边开始
jb1 = new JButton("小");
jb1.addActionListener(this);
jb2 = new JButton("大");
jb2.addActionListener(this);
jb3 = new JButton("关闭");
jb3.addActionListener(this);
jp.add(jb1);
jp.add(jb2);
jp.add(jb3);
add(jp);
//窗口属性设置
setUndecorated(true);// 不绘制边框
setSize(500, 230);// 窗口大小
setLocationRelativeTo(null);// 窗口居中
setDefaultCloseOperation(EXIT_ON_CLOSE);// 窗口点击关闭时,退出程序
setVisible(true);// 窗口可见
}
public static void main(String[] args) {
new JTFDemo(); //创建窗口并显示
}
public void actionPerformed(ActionEvent e) {
if(e.getSource()==jb1) {
setExtendedState(ICONIFIED);//窗口最小化
}else if(e.getSource()==jb2) {
setExtendedState(MAXIMIZED_BOTH);//窗口最大化
}else if(e.getSource()==jb3) {
System.exit(0);//退出程序
}
}
}
可以这么考虑!1.首先做一个你想最小化的窗口List,将所有你想最小化的窗口都放进去。
2.然后新建一个类或匿名类,随意,extendsWindowAdapter,然后Override它的
publicvoidwindowIconified(WindowEvente)方法,用来监听窗口的最小化事件。
即:将步骤1的List里的所有窗口都最小化:
for(JFramejf:frameList){
jf.setState(Frame.ICONIFIED);
}
3.最后对你的登录窗口设置windowListend,即:
loginFrame.addWindowListener(newWindowAdapter(){
@Override
publicvoidwindowIconified(WindowEvente){
for(JFramejf:frameList){
jf.setState(Frame.ICONIFIED);
}
}
});//我这里用匿名类实现了(为了方便),你也可以不这么做。
4.如果你想同样恢复窗口的话,你也可以extendsWindowAdapter然后重载
publicvoidwindowDeiconified(WindowEvente)方法,来捕捉登录窗口的恢复窗口事件,
然后对你的所有窗口:frame.setState(Frame.NORMAL),即可!
望楼主采纳!
最小化时隐藏,在图标上点右右键选择显示窗口时,让窗口显示出来 import java.awt.AWTException; import java.awt.Image; import java.awt.MenuItem; import java.awt.SystemTray; import java.awt.Toolkit; import java.awt.TrayIcon; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; import javax.imageio.ImageIO; public class SystemTrayTest extends Thread { TrayIcon st; SystemTray tray =null; //javax.swing.Popup p; java.awt.PopupMenu popup; MenuItem mi1,mi2; msgbox m=null; public void getm(msgbox m){ this.m=m; } public void run() { // TODO Auto-generated method stub super.run(); if (SystemTray.isSupported()) { // get the SystemTray instance tray = SystemTray.getSystemTray(); // load an image String test = System.getProperty("user.dir").replace('\\', '/'); BufferedImage src = null; try { src = ImageIO.read(new File(test + "\\logo.jpg")); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } // 读入源图像 // Image image = Toolkit.getDefaultToolkit().getImage(test + "\\logo.jpg"); // create a action listener to listen for default action executed on // the tray icon popup=new java.awt.PopupMenu(); mi1=new MenuItem("显示窗口"); mi2=new MenuItem("---"); popup.add(mi1); popup.add(mi2); mi1.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e) { // TODO Auto-generated method stub m.setVisible(true); System.out.println("open"); } }); mi2.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e) { // TODO Auto-generated method stub //System.out.println("close"); //System.exit(0); } }); st = new TrayIcon(image, "Tray Demo", popup); try { tray.add(st); } catch (AWTException e) { e.printStackTrace(); } } } public static void main(String[] args) { new SystemTrayTest().start(); } } //使窗口最小化,并隐藏 public void windowIconified(WindowEvent e) { System.out.print("sssssss"); jf.setVisible(false); System.out.print(""+e+" "+e.getClass()+" "+e.getNewState()); }责任编辑:小草
// 顺便给出代码
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
public class Test extends JFrame {
private JButton button1 = null;
public Test()
{
super("Frame");
button1 = new JButton("Minimize");
button1.addActionListener( new ActionListener(){
public void actionPerformed(ActionEvent e)
{
setState( Frame.ICONIFIED ); // Minimize main frame.
}
});
this.getContentPane().add(button1);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setSize(120, 60);
this.setVisible(true);
}
public static void main(String[] args) { new Test(); }
}