Java删除Jbutton
时间: 2024-01-15 21:04:34 浏览: 212
要删除Java中的JButton,可以使用以下步骤:
1. 从JFrame中删除JButton对象。
2. 通过调用JButton的dispose()方法来释放它所占用的内存。
以下是代码示例:
```java
JButton button = new JButton("Delete Me");
// 从JFrame中删除按钮
frame.getContentPane().remove(button);
// 释放按钮所占用的内存
button.dispose();
```
请注意,这只是将JButton从GUI中删除,并不会从内存中完全删除它。如果您想要完全删除JButton对象,则需要确保没有其他对象引用它,并让Java的垃圾回收器清理它。
相关问题
Java实现:在JFrame窗口中加入Jpanel 在Jpanel中加入ContainerListener监听器,为Jpanel内加入JButton,删除JButton,JButton的名字命名为自己的学号,姓名
好的,下面是Java代码实现:
```
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class MyPanel extends JFrame {
private JPanel panel;
public MyPanel() {
setTitle("My Panel");
setSize(400, 400);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
panel = new JPanel();
panel.addContainerListener(new ContainerListener() {
public void componentAdded(ContainerEvent e) {
Component c = e.getChild();
if (c instanceof JButton) {
System.out.println("Button " + ((JButton) c).getText() + " added");
}
}
public void componentRemoved(ContainerEvent e) {
Component c = e.getChild();
if (c instanceof JButton) {
System.out.println("Button " + ((JButton) c).getText() + " removed");
}
}
});
add(panel);
JButton button = new JButton("学号-姓名");
panel.add(button);
button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
panel.remove(button);
System.out.println("Button " + button.getText() + " removed");
panel.revalidate();
panel.repaint();
}
});
}
public static void main(String[] args) {
MyPanel frame = new MyPanel();
frame.setVisible(true);
}
}
```
在上述代码中,我们创建了一个 `MyPanel` 类继承自 `JFrame` 类,并在构造函数中创建了一个 `JPanel`,并为其添加了一个 `ContainerListener` 监听器,用于监听 `JPanel` 中的组件添加和删除事件。
接着,我们在 `JPanel` 中添加了一个 `JButton`,并将其命名为学号-姓名。当用户点击该按钮时,我们将从 `JPanel` 中删除该按钮,并在控制台输出该按钮已被删除的信息。
最后,我们在 `main` 方法中创建了一个 `MyPanel` 对象,并将其设置为可见。当运行该程序时,我们可以通过添加或删除 `JButton` 来观察控制台输出的变化。
在JFrame窗口中加入Jpanel 在Jpanel中加入ContainerListener监听器,为Jpanel内加入JButton,删除JButton,JButton的名字命名为自己的学号,姓名。
以下是示例代码:
```java
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class MyPanel extends JPanel {
public MyPanel() {
this.setLayout(new FlowLayout());
// 添加按钮
JButton button = new JButton("添加按钮");
button.setName("1901234567_张三");
button.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
JButton newButton = new JButton("删除按钮");
newButton.setName("1901234567_张三");
add(newButton);
revalidate();
}
});
add(button);
// 监听容器事件
addContainerListener(new ContainerAdapter() {
@Override
public void componentRemoved(ContainerEvent e) {
Component component = e.getChild();
if (component instanceof JButton && component.getName().equals("1901234567_张三")) {
System.out.println("删除按钮:" + component.getName());
}
}
});
}
public static void main(String[] args) {
JFrame frame = new JFrame("MyPanel");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(400, 300);
frame.setLocationRelativeTo(null);
MyPanel panel = new MyPanel();
frame.add(panel);
frame.setVisible(true);
}
}
```
在上面的代码中,我们创建了一个 `MyPanel` 类,继承自 `JPanel`,并在其构造函数中进行初始化。在 `MyPanel` 中,我们添加了一个按钮,并为其添加了一个监听器,当用户点击该按钮时,会在 `MyPanel` 中添加另外一个按钮,并重新布局。
同时,我们也为 `MyPanel` 添加了一个容器监听器 `ContainerListener`,当 `MyPanel` 中的组件被删除时,会触发 `componentRemoved` 方法,我们可以在该方法中判断是否为按钮,并且名字为指定的学号和姓名,如果是,则输出一行日志。
阅读全文