⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 viewdb.java

📁 用java编写的简单的窗口按钮程序的演示程序
💻 JAVA
字号:
import java.net.*;
import java.sql.*;
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import java.util.*;
import javax.swing.*;

public class ViewDB
{  public static void main(String[] args)
   {  JFrame frame = new ViewDBFrame();
      frame.show();
   }
}

class ViewDBFrame extends JFrame
   implements ActionListener
{  public ViewDBFrame()
   {  setTitle("ViewDB");
      setSize(300, 200);
      addWindowListener(new WindowAdapter()
         {  public void windowClosing(WindowEvent e)
            {  System.exit(0);
            }
         } );

      Container contentPane = getContentPane();

      tableNames = new JComboBox();
      tableNames.addActionListener(this);

      dataPanel = new JPanel();
      contentPane.add(dataPanel, "Center");

      nextButton = new JButton("Next");
      nextButton.addActionListener(this);
      JPanel p = new JPanel();
      p.add(nextButton);
      contentPane.add(p, "South");

      fields = new ArrayList();

      try
      {  con = getConnection();
         stmt = con.createStatement();
         md = con.getMetaData();
         ResultSet mrs = md.getTables(null, null, null,
            new String[] { "TABLE" });
         while (mrs.next())
            tableNames.addItem(mrs.getString(3));
          mrs.close();
      }
      catch(Exception e)
      {  JOptionPane.showMessageDialog(this, e);
      }

      contentPane.add(tableNames, "North");
   }

   public static Connection getConnection()
      throws SQLException, IOException
   {  Properties props = new Properties();
      String fileName = "ViewDB.properties";
      FileInputStream in = new FileInputStream(fileName);
      props.load(in);

      String drivers = props.getProperty("jdbc.drivers");
      if (drivers != null)
         System.setProperty("jdbc.drivers", drivers);
      String url = props.getProperty("jdbc.url");
      String username = props.getProperty("jdbc.username");
      String password = props.getProperty("jdbc.password");

      return
         DriverManager.getConnection(url, username, password);
   }

   private void add(Container p, Component c,
      GridBagConstraints gbc, int x, int y, int w, int h)
   {  gbc.gridx = x;
      gbc.gridy = y;
      gbc.gridwidth = w;
      gbc.gridheight = h;
      p.add(c, gbc);
   }

   public void actionPerformed(ActionEvent evt)
   {  if (evt.getSource() == nextButton)
      {  showNextRow();
      }
      else if (evt.getSource() == tableNames)
      {  remove(dataPanel);
         dataPanel = new JPanel();
         fields.clear();
         dataPanel.setLayout(new GridBagLayout());
         GridBagConstraints gbc = new GridBagConstraints();
         gbc.weighty = 100;

         try
         {  String tableName
               = (String)tableNames.getSelectedItem();
            if (rs != null) rs.close();
            rs = stmt.executeQuery("SELECT * FROM "
               + tableName);
            ResultSetMetaData rsmd = rs.getMetaData();
            for (int i = 1; i <= rsmd.getColumnCount(); i++)
            {  String columnName = rsmd.getColumnLabel(i);
               int columnWidth = rsmd.getColumnDisplaySize(i);
               JTextField tb = new JTextField(columnWidth);
               fields.add(tb);

               gbc.weightx = 0;
               gbc.anchor = GridBagConstraints.EAST;
               gbc.fill = GridBagConstraints.NONE;
               add(dataPanel, new JLabel(columnName),
                  gbc, 0, i - 1, 1, 1);

               gbc.weightx = 100;
               gbc.anchor = GridBagConstraints.WEST;
               gbc.fill = GridBagConstraints.HORIZONTAL;
               add(dataPanel, tb, gbc, 1, i - 1, 1, 1);
            }
         }
         catch(Exception e)
         {  JOptionPane.showMessageDialog(this, e);
         }
         getContentPane().add(dataPanel, "Center");
         doLayout();
         pack();

         showNextRow();
      }
   }

   public void showNextRow()
   {  if (rs == null) return;
      {  try
         {  if (rs.next())
            {  for (int i = 1; i <= fields.size(); i++)
               {  String field = rs.getString(i);
                  JTextField tb
                     = (JTextField)fields.get(i - 1);
                  tb.setText(field);
               }
            }
            else
            {  rs.close();
               rs = null;
            }
         }
         catch(Exception e)
         {  System.out.println("Error " + e);
         }
      }
   }

   private JButton nextButton;
   private JPanel dataPanel;
   private JComboBox tableNames;
   private ArrayList fields;

   private Connection con;
   private Statement stmt;
   private DatabaseMetaData md;
   private ResultSet rs;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -