我的主要类扩展了JPanel,我在这个面板上创建了一个表和一个按钮.现在我想在用户按下它时关闭这个面板.在互联网上关闭的例子是JFrame.Is解决方案是JPanel吗?
这是我的代码现在我想要当用户按下btnDelete然后关闭面板
公共类ListUsers扩展JPanel {
ResultSet rs; ClientDAO dao; JScrollPane scrollPane; JTable表; Object columnId;
public ListUsers()抛出SQLException {
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);
Run Code Online (Sandbox Code Playgroud)如果你想"关闭"JPanel,你可以隐藏它.
myPanel.setVisible(false);
Run Code Online (Sandbox Code Playgroud)
如果/当你想再次"打开"时:
myPanel.setVisible(true);
Run Code Online (Sandbox Code Playgroud)
public void actionPerformed(ActionEvent e) {
JComponent comp = (JComponent) e.getSource();
Window win = SwingUtilities.getWindowAncestor(comp);
win.dispose();
}
Run Code Online (Sandbox Code Playgroud)
e.getSource():获取Java Component
getWindowAncestor:返回的第一个Window 祖先Component
win.dispose():释放此组件及其子组件使用的所有本机屏幕资源,以及其所有拥有的子代。
| 归档时间: |
|
| 查看次数: |
24357 次 |
| 最近记录: |