JAVA GUI中的窗体清空和窗体关闭方法分析

清空组件

1.removeAll() JFRame和JPanel都可以调用,可以清除容器中的所有内容。

清空后用

revalidate(); 重新进行组件布局

repaint();重新绘制窗体

关闭窗体

1.关闭窗体程序结束

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 该设置关闭窗体的时候整个程序结束

2.关闭当前窗体,不会影响整个程序

this.dispose();方法也可以关闭窗体

this.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);设置窗体的关闭方式为dispose

1.this.setDefaultCloseOperation(0);// WindowConstants.DO_NOTHING_ON_CLOSE,不执行任何操作。 
2.this.setDefaultCloseOperation(1);//WindowConstants.HIDE_ON_CLOSE,只隐藏界面,setVisible(false)。 
3.this.setDefaultCloseOperation(2);//WindowConstants.DISPOSE_ON_CLOSE,隐藏并释放窗体,dispose(),当最后一个窗口被释放后,则程序也随之运行结束。 
4.this.setDefaultCloseOperation(3);//WindowConstants.EXIT_ON_CLOSE,直接关闭应用程序,System.exit(0)。一个main函数对应一整个程序。

  • 4
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
您可以使用Java的AWT和Swing库来实现这个功能。首先,您需要创建一个继承自JFrame的窗体,并在其添加一个MouseListener来监听鼠标事件。然后,您可以在MouseListener的回调函数实现绘制图形的逻辑。 以下是一个简单的示例代码: ```java import java.awt.Color; import java.awt.Graphics; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import javax.swing.JFrame; import javax.swing.JPanel; public class MyFrame extends JFrame { private JPanel panel; public MyFrame() { setTitle("Draw Shapes"); setSize(400, 400); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); panel = new JPanel() { private Color color = Color.RED; private int x, y; @Override public void paintComponent(Graphics g) { super.paintComponent(g); if (color == Color.RED) { g.setColor(Color.RED); g.fillOval(x, y, 50, 50); } else if (color == Color.GREEN) { g.setColor(Color.GREEN); g.fillRect(x, y, 50, 50); } } }; panel.addMouseListener(new MouseAdapter() { @Override public void mouseClicked(MouseEvent e) { if (e.getButton() == MouseEvent.BUTTON1) { if (e.getClickCount() == 1) { panel.color = Color.RED; panel.x = e.getX(); panel.y = e.getY(); panel.repaint(); } else if (e.getClickCount() == 2) { panel.color = null; panel.repaint(); } } else if (e.getButton() == MouseEvent.BUTTON3) { panel.color = Color.GREEN; panel.x = e.getX(); panel.y = e.getY(); panel.repaint(); } } }); add(panel); } public static void main(String[] args) { MyFrame frame = new MyFrame(); frame.setVisible(true); } } ``` 在这个示例代码,我们创建了一个JPanel来绘制图形,并在MouseListener的回调函数根据鼠标事件的类型和次数来设置颜色和位置,并调用repaint()方法来触发重绘。在paintComponent()方法,我们根据颜色来绘制圆或方框。当双击鼠标左键时,我们将颜色设置为null,以清空所有已画的图形。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值