gpt4 book ai didi

java - 如何删除最小化按钮并在 JFrame 中保留最大化和关闭按钮

转载 作者:行者123 更新时间:2023-11-30 06:18:07 26 4
gpt4 key购买 nike

我只想从 JFrame 中删除最小化按钮但想要 JFrame 标题栏中的最大化和关闭按钮。

这里我说的是移除而不是禁用。

最佳答案

我不认为删除最小化按钮是件好事。但也许你可以使用 setUndecorated()方法去除标题栏和窗口边缘。您必须添加自己的关闭和最大化按钮才能执行这些操作。

这是一个例子:

import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.AbstractAction;
import javax.swing.JButton;

public class Example {

public Example() {
JFrame frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setUndecorated(true);//<---- this will disable the frame decorations
JPanel panel = new JPanel();
panel.add(new JLabel("titlebar"));
//Add button maximize
JButton button_max=new JButton("Maximize");
button_max.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent ae) {
if(frame.getExtendedState() == JFrame.NORMAL) {
frame.setExtendedState(JFrame.MAXIMIZED_BOTH);
} else {
frame.setExtendedState(JFrame.NORMAL);
}
}
});
panel.add(button_max);
//Add button close
JButton button_close = new JButton(new AbstractAction("Close") {
private static final long serialVersionUID = -4901571960357967734L;
public void actionPerformed(ActionEvent e) {
System.exit(0);
}
});
panel.add(button_close);
frame.add(panel);
frame.pack();
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}

public static void main(String[] args) {
new Example();
}
}

编辑:

正如@peeskillet 在评论中所述,即使使用此方法,用户仍然可以调整窗口大小和拖动窗口。 ComponentResizer 类允许这样做。

这是一个 SO post这给出了将此类与 Jframe 一起使用的一个很好的示例。

关于java - 如何删除最小化按钮并在 JFrame 中保留最大化和关闭按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25177325/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com