当前位置: 首页 > 知识库问答 >
问题:

Swing如何以编程方式关闭JPanel

章学义
2023-03-14

我的主类扩展了JPanel,我在这个面板上创建了一个表和一个按钮。现在我想在用户按下它时关闭这个面板。在互联网上关闭面板的例子是关于JFrame.JPanel有解决方案吗?

dao = new ClientDAO();
rs=dao.getUsers();
ResultSetMetaData md = rs.getMetaData();  
int columnCount = md.getColumnCount();  

Vector<String> columns = new Vector(columnCount);  

//store column names  
for(int i=1; i<=columnCount; i++)  
    columns.add(md.getColumnName(i));  

Vector data = new Vector();  
Vector row;  

//store row data  
while(rs.next())  
{  
    row = new Vector(columnCount);  
    for(int i=1; i<=columnCount; i++)  
    {  
        row.add(rs.getString(i));  
    }  
    data.add(row);  
}  





table = new JTable(data, columns);  
table.setPreferredScrollableViewportSize(new Dimension(500, 70));  
table.setFillsViewportHeight(true);  
table.setVisible(true);  
table.validate();
table.setEnabled(true);
add(table);




table.addMouseListener(new MouseAdapter() {
       public void mouseClicked(MouseEvent e) {





           final JDialog dialog = new JDialog();
           dialog.setSize(300, 200);
           dialog.setLayout(null);


           columnId = table.getValueAt(table.getSelectedRow(),0);

           Integer no = new Integer(columnId.toString());
           final int i =no.intValue();

           String columnNo =columnId.toString();
           String name = table.getValueAt(table.getSelectedRow(),1).toString();
           String surname = table.getValueAt(table.getSelectedRow(),2).toString();
           String gender = table.getValueAt(table.getSelectedRow(),3).toString();


           String labelText ="<html>Name :<b>"+name+"</b><br>Surname :<b>"+surname+"</b><br>Gender :<b>"+gender+"</b></html>";
           JLabel label=new JLabel(labelText);
           label.setVisible(true);
           label.setBounds(10,  10,300, 100);
           dialog.add(label);



           JButton btnUpdate= new JButton("Update");
           btnUpdate.setVisible(true);
           btnUpdate.setBounds(10,100,100,35);


           JButton    btnDelete= new JButton("Delete");
           btnDelete.setVisible(true);
           btnDelete.setBounds(150,100,100,35);




           dialog.add(btnDelete);
           dialog.add(btnUpdate);


           btnUpdate.addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent e) {
                dialog.setVisible(false);

            }
        });


           btnDelete.addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent e) {




                try {
                    dao.deleteUser(i);
                } catch (SQLException e1) {
                    // TODO Auto-generated catch block
                    e1.printStackTrace();
                }
                dialog.setVisible(false);


                setVisible(false);
                System.exit(0);



            }
        });

           dialog.setVisible(true);

共有1个答案

谢英耀
2023-03-14

如果你想‘关闭’一个JPanel,你可以隐藏它。

myPanel.setVisible(false);

如果/当您想再次“打开”它时:

myPanel.setVisible(true);
 类似资料:
  • 问题内容: JFrame与用户按下X关闭按钮或按在Windows上)相同,获得关闭的正确方法是什么? 我通过以下方式设置了我想要的默认关闭操作: 它完全符合我想要的上述控件的功能。这个问题不是关于这个的。 我真正想做的是使GUI的行为与按下X关闭按钮的行为相同。 假设我要扩展,然后通过来添加我的适配器的实例作为侦听器。我想看到的调用相同的序列通过,以及作为将与出现X关闭按钮。可以这么说,撕开窗户与

  • 我正在使用netty 4.0。24.4决赛。 我需要以编程方式启动/停止网络服务器。 在启动服务器时,线程在 请提供一些如何正确操作的提示。下面是由主类调用的EchoServer。谢谢 更新:我用以下方式更改了EchoServer类。其想法是在新线程中启动服务器,并保留到EventLoopGroup的链接。这条路对吗?

  • 问题内容: 我想制作一个锁屏应用程序。当手机处于锁定模式时,它将在插入USB时关闭手机,以防止其他用户访问手机数据。有谁知道如何以编程方式关闭Android设备,以使其他人在设备处于锁定模式时无法访问数据? 这是在锁定屏幕活动上锁定主屏幕按钮的代码: 问题答案: 使用公开的Android SDK是不可能的。

  • 问题内容: 我想知道是否已经有一个库可以以编程方式编写Java类或方法? 我正在寻找能够将新的源代码写入现有文件或扩展已经存在的文件的库。 问题答案: 查看Eclipse JDT。 Eclipse Java开发工具(JDT)提供用于访问和操作Java源代码的API。它允许访问工作空间中的现有项目,创建新项目以及修改和读取现有项目。 更具体地说,您可以使用Java Model API创建新的Java

  • 问题内容: 关闭。 此问题不符合堆栈溢出准则。它当前不接受答案。 想改善这个问题吗? 更新问题,使其成为Stack Overflow的主题。 2年前关闭。 改善这个问题 我需要使用python编辑Excel工作簿。有没有这样做的方法,而无需阅读工作簿,编辑我想要的内容并将其写回?即有没有一种方法可以即时进行,因为我只需要在每张纸上编辑几个值? 我已经看过了,和,但他们似乎只支持(据我可以工作),阅

  • 问题内容: 我需要像这样打开/关闭模态 $(element).modal(’show’) 怎么做? 问题答案: 您正在寻找的是自定义模式触发器,该触发器使用并允许您自己管理模式状态。您可以控制是否使用模态来实现与以下示例中所要求的效果相同的效果。以下代码来自react-bootstrap网站(http://react- bootstrap.github.io/components.html#mod