使用Java Swing设计: 1.创建一个背景色为new Color(204, 204, 204);width:1100;height:700;的窗口; 2.去掉窗口边框默认样式,且禁用窗口缩放;窗口居中显示。 3.在窗口最上方添加自定义的白色标题栏; 4.标题栏最右侧有最小化按钮,最大化按钮,关闭按钮,全部为白色;且鼠标移动到按钮上时,对应的按钮会高亮; 5.关闭窗口,进程也会结束;
时间: 2024-04-17 09:26:10 浏览: 26
您好!以下是使用Java Swing实现您所描述的窗口设计的代码示例:
```java
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class CustomWindow extends JFrame {
private JPanel titleBar;
private JButton minimizeButton;
private JButton maximizeButton;
private JButton closeButton;
public CustomWindow() {
// 设置窗口大小和背景色
setSize(1100, 700);
getContentPane().setBackground(new Color(204, 204, 204));
// 去掉窗口边框默认样式
setUndecorated(true);
// 设置窗口不能缩放
setResizable(false);
// 窗口居中显示
setLocationRelativeTo(null);
// 创建自定义标题栏
createTitleBar();
// 添加标题栏到窗口顶部
add(titleBar, BorderLayout.NORTH);
// 设置关闭窗口时退出程序
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
private void createTitleBar() {
titleBar = new JPanel();
titleBar.setBackground(Color.WHITE);
// 设置标题栏布局为水平布局
titleBar.setLayout(new FlowLayout(FlowLayout.RIGHT));
// 创建最小化、最大化和关闭按钮
minimizeButton = createButton("-");
maximizeButton = createButton("+");
closeButton = createButton("x");
// 添加按钮到标题栏
titleBar.add(minimizeButton);
titleBar.add(maximizeButton);
titleBar.add(closeButton);
// 设置按钮鼠标移动时的高亮效果
ButtonHandler buttonHandler = new ButtonHandler();
minimizeButton.addMouseListener(buttonHandler);
maximizeButton.addMouseListener(buttonHandler);
closeButton.addMouseListener(buttonHandler);
}
private JButton createButton(String text) {
JButton button = new JButton(text);
button.setPreferredSize(new Dimension(40, 20));
button.setBackground(Color.WHITE);
button.setBorderPainted(false);
button.setFocusPainted(false);
button.addActionListener(new ButtonListener());
return button;
}
private class ButtonListener implements ActionListener {
public void actionPerformed(ActionEvent e) {
if (e.getSource() == closeButton) {
// 关闭窗口时退出程序
System.exit(0);
}
// 处理最小化和最大化按钮的逻辑
}
}
private class ButtonHandler extends MouseAdapter {
public void mouseEntered(MouseEvent e) {
((JButton) e.getSource()).setBackground(Color.LIGHT_GRAY);
}
public void mouseExited(MouseEvent e) {
((JButton) e.getSource()).setBackground(Color.WHITE);
}
}
public static void main(String[] args) {
SwingUtilities.invokeLater(() -> {
CustomWindow window = new CustomWindow();
window.setVisible(true);
});
}
}
```
您可以将以上代码保存为`CustomWindow.java`文件,并编译运行。运行后将会显示一个具有自定义标题栏、背景色为204, 204, 204的窗口,关闭窗口时会结束进程。
请注意,最小化和最大化按钮的逻辑需要根据您的具体需求进行实现。此示例中,我们暂未添加这些功能,您可以根据需要进行扩展。
相关推荐
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)