91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么用java實現一個簡單的房屋管理程序

發布時間:2021-11-20 15:54:43 來源:億速云 閱讀:183 作者:小新 欄目:編程語言

這篇文章主要介紹了怎么用java實現一個簡單的房屋管理程序,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

/*
住戶房屋申請表
*/


public class ApplicationInfo {
 
  private String name = null;
  private String age = null;
  private String length_service = null;
  private String head_name = null;
  private String post = null;
  private String population = null ;
  private String grade = null;
  private String apply_type = null;
 
  public ApplicationInfo(){
  }
 
  /*
  用數組保存用戶的申請信息。
  */
 
  public void setAllAttribute(String result[]){
  name = result[0];
  age = result[1];
  length_service = result[2];
  head_name = result[3];
  post = result[4];
  population = result[5];
  grade = result[6];
  apply_type = result[7];
  }

 /*
  獲得用戶的各種申請信息,
  包括姓名,年齡,工齡,職位,職稱,家庭人口等
  信息。
 */
 
  public String getApplyType(){
  return apply_type;
  }
 
  public String getName(){
  return name;
  }
  public String getAge(){
  return age;
  }
 
  public String getLengthService(){
  return length_service;
  }
 
  public String getPost(){
  return post;
  }
 
  public String getHeadName(){
  return head_name;
  }
 
  public String getPopulation(){
  return population;
  }
 
  public String getGrade(){
  return grade;
  }
 }
////////////////////////////////////////////////////////

/*
用來顯示空房,
住房,
總共的房屋數的統計信息。
作的很粗糙。
*/


import java.awt.*;
import java.awt.event.*;
import java.awt.geom.*;
import javax.swing.*;

public class BarChartInfo  extends JPanel {
 
  private static final int SCALE = 2;
  private static final int CHARTCOUNT = 3;
  private static final int BARSPACING  = 20;
  private static final String  CHARTTITEL = "HouseNumberGraphics";
  private static final Font CURRENTFONT= new Font("Courier",Font.BOLD,12);
  private static FontMetrics  cfm ;
 
  private static int MAXLABELWIDTH  = 0;
  private static int BARWIDTH  = 0;
  private static int MAX = 0;
 
  private int values[];
  private  Color colors[];
  private  String  labels[];

  public BarChartInfo (int valueInfo[]){
 
  cfm = getFontMetrics(CURRENTFONT);
 
  values = new int[CHARTCOUNT];
 colors = new Color[CHARTCOUNT];
 labels = new String[CHARTCOUNT];
 
 colors[0] = Color.red;
  colors[1] = Color.green;
 colors[2] = Color.blue;
 
  for (int i=0;i<CHARTCOUNT; i++){
  values[i] = valueInfo[i];
  if (values[i]> MAX) {
 MAX = values[i];
  }
  labels[0] = "RemainHouseNumber:";
  labels[1] = "DistributeHouseNumber:";
  labels[2] = "AllHouseNumber:";
 
 
  MAXLABELWIDTH = Math.max(cfm.stringWidth(labels[i]),
  MAXLABELWIDTH);
 }
 
  BARWIDTH = CURRENTFONT.getSize();
 setSize(Math.max((MAX*SCALE),
  cfm.stringWidth(CHARTTITEL))+MAXLABELWIDTH+5,
  (CHARTCOUNT*(BARWIDTH+BARSPACING))+CURRENTFONT.getSize()+10);
 
  }

  public void update(Graphics g){
  g.clearRect(0,0,getWidth(),getHeight());
  paintComponent(g);
  }

 
  public void paintComponent(Graphics g){
  super.paintComponent(g);
  Graphics2D g2D = (Graphics2D)g;
  g2D.setFont(CURRENTFONT);
 
  g2D.setColor(Color.black);
 
  int i,cx,cy;
  i = cfm.stringWidth(CHARTTITEL);
  for (i = 0;i < CHARTCOUNT ; i++) {
    cy = ((BARWIDTH + BARSPACING) * i) + BARSPACING;
  cx = MAXLABELWIDTH + 1;
  cx += Math.max((getWidth()-(MAXLABELWIDTH + 1 +(MAX*SCALE)))/2,0);
  g2D.setColor(Color.black); 
  g2D.drawString(labels[i],cx -MAXLABELWIDTH-1,
  cy + cfm.getAscent());
  g2D.fillRect(cx+3,cy+5,(values[i]*SCALE),BARWIDTH);
  g2D.setColor(colors[i]);
  g2D.fillRect(cx,cy,(values[i]*SCALE),BARWIDTH);
  g2D.drawString(""+values[i],cx+(values[i]*SCALE)+3,
  cy + cfm.getAscent());
  }
  }
 }

///////////////////////////////////////////

/*
把用戶的申請信息,寫入分房文件中,
一個月后由系統讀出信息,然后進行分房。
*/

import java.io.*;

public class CreateApplyQueueFile extends Thread {
 private boolean isOver;
 private StringBuffer buffer;
 
 public CreateApplyQueueFile(StringBuffer buffer){
  isOver = false;
  this.buffer = buffer;
 }
 
 public void run(){
  try {
  PrintWriter out= new PrintWriter(
  new BufferedWriter(
  new FileWriter("house.tmp",true)),true);
  out.println(buffer);
  out.close();
  }
  catch(Exception e){e.printStackTrace();}
  isOver = true;
 }
 
 public boolean isOver(){
  return isOver;
 }
 
}

/////////////////////////////////////

/*
進行分房。
*/

import java.io.*;
import java.sql.*;
import java.util.*;
import javax.swing.*;

public class DistributeHouse extends Thread {
 private Vector houseInfoVector ;
 private Vector applyVector ;
 private Connection connection;
 private StringBuffer resultBuffer;
 private JTextArea textArea;
 
 public DistributeHouse(Connection connection,JTextArea textArea){
  resultBuffer = new StringBuffer();
  houseInfoVector = new Vector();
  applyVector = new Vector();
  this.connection = connection;
  this.textArea = textArea;
 }
 
 public void run(){
  LoadApplyQueueFile();
  distributeHouse();
 }
 
 /*
 從分房文件中讀出申請者的信息,并加入到向量中,備分房時使用。
 */
 
 private synchronized void LoadApplyQueueFile(){
  try { BufferedReader reader = new BufferedReader(
  new FileReader("house.tmp"));
  String s = null;
  while((s = reader.readLine())!=null){
  ApplicationInfo applyInfo = new ApplicationInfo();
  StringTokenizer stk = new StringTokenizer(s);
  String result[] = new String[8];
  int i=0;
  while(stk.hasMoreElements()){
  result[i] = stk.nextToken("*");
  i++;
  }
  applyInfo.setAllAttribute(result);
  applyVector.addElement(applyInfo);
  }
  reader.close(); 
  }
  catch(Exception e){e.printStackTrace();}
 }
 
 /*
 分房完畢后更新分房文件為空文件。
 備下批分房使用。
 */
 
 private synchronized void DeleteApplyQueueFile(){
  try{
  FileOutputStream fos = new FileOutputStream("house.tmp");
  fos.close();
  }
  catch(Exception e){e.printStackTrace();}
 }

 /*
 從向量中隨機讀出申請者等級,連接數據庫,進行相關的查詢及更新。
 */
 
 private synchronized void distributeHouse(){
  VacantHouseInfo info = null;
  while(!applyVector.isEmpty()){
  ApplicationInfo applyInfo = (ApplicationInfo)applyVector.elementAt(0);
  String grade = getGrade(applyInfo);
  int accordHouseNum = getVacantHouseInfo(grade);
  int randomIndex = (int)(accordHouseNum*Math.random());
  info = (VacantHouseInfo)houseInfoVector.elementAt(randomIndex);
  updateRentFile(info,applyInfo);
  updateLodgingHouseFile(info,applyInfo);
  updateVacantHouseFile(info);
  displayResult(info,applyInfo);
  applyVector.remove(0);
  houseInfoVector.removeAllElements();
  }
  DeleteApplyQueueFile();
  }
 
 /*
 獲得空房等級。空房等級假設和申請者的年齡,工齡,職務等
 有關。這里沒有給出函數關系,可以在程序中設置為3,或5等。
 */
 
 private synchronized int getVacantHouseInfo(String houseGrade){
  int value = -1;
  try{ 
  PreparedStatement Stmt = connection.prepareStatement(
  "select * FROM 空房文件 WHERE 房屋等級 = +
  houseGrade + ");
  ResultSet result = Stmt.executeQuery();
  ResultSetMetaData metadata = result.getMetaData();
  String houseInfo[] = new String[5];
  while (result.next()) {
  for(int i=1;i<=metadata.getColumnCount();i++){
  houseInfo[i-1] = result.getString(i);
  }
  VacantHouseInfo vacantHouseInfo = new VacantHouseInfo();
  vacantHouseInfo.setAllAttribute(houseInfo);
  houseInfoVector.addElement(vacantHouseInfo);
  value = houseInfoVector.size();
  }
  Stmt.close();
  }
  catch(Exception e){e.printStackTrace();}
  return value;
  }
 
  /*
  把分得房屋的用戶寫入住房文件中。
 */
 private synchronized void updateLodgingHouseFile(VacantHouseInfo info,ApplicationInfo applyInfo){
  try {  PreparedStatement Stmt = connection.prepareStatement("INSERT INTO 住房文件 VALUES(?,?,?,?,?,?)");
  Stmt.setString(1,info.getHouseNumber());
  Stmt.setString(2,applyInfo.getName());
  Stmt.setString(3,info.getHouseGrade());
  Stmt.setString(4,info.getHouseRent());
  Stmt.setString(5,info.getHouseArea());
  Stmt.setString(6,info.getHouseStructure());
  Stmt.executeUpdate();
  Stmt.close();
  }
  catch (Exception e) {e.printStackTrace();}
 }
 
  /*
 算出房租寫入房租文件中。
 */
 private synchronized void updateRentFile(VacantHouseInfo info,ApplicationInfo applyInfo){
  try {  String s = caculateRent(info);
  PreparedStatement Stmt = connection.prepareStatement("INSERT INTO 房租文件 VALUES(?,?,?,?)");
  Stmt.setString(1,info.getHouseNumber());
  Stmt.setString(2,applyInfo.getName());
  Stmt.setString(3,info.getHouseGrade());
  Stmt.setString(4,s);
  Stmt.executeUpdate();
  Stmt.close();
  }
  catch (Exception e) {e.printStackTrace();}
 }
 
  /*
 刪除空房文件中以分配了的房屋信息。
 */
 private synchronized void updateVacantHouseFile(VacantHouseInfo info){
  try { Statement Stmt = connection.createStatement();
  Stmt.execute("DELETE FROM 空房文件 WHERE 房號 = "+"+
  info.getHouseNumber()+");
  Stmt.execute("DELETE FROM 空房文件 WHERE 房號 = "+"+
  info.getHouseNumber()+");
  Stmt.close();
  }
  catch (Exception e) {e.printStackTrace();}
  }
 
  /*
 
 */
 
 private synchronized int getInteger(String s){
  StringBuffer buffer = new StringBuffer();
  for(int i=0;i<s.length();i++){
  if((int)s.charAt(i)>=48&&(int)s.charAt(i)<=57){
  buffer.append(s.charAt(i));
  }
  }
  return Integer.parseInt(buffer.toString());
  }
 
  /*
  計算房租。
 */
 
 private synchronized String caculateRent(VacantHouseInfo info){
  int area = getInteger(info.getHouseArea()); 
  int rent = getInteger(info.getHouseRent());
  int sum = area*rent;
  Integer integer = null;
  if(sum>0)integer =new Integer(sum);
  String s = integer.toString()+"元";
  return s;
 }
 
  /*
 獲得房屋等級。
 */
 
 private synchronized String getGrade(ApplicationInfo applyInfo){
  return applyInfo.getGrade();
  }
 
  /*
 顯示結果。
 */
 
 private synchronized void displayResult(VacantHouseInfo info ,ApplicationInfo applyInfo){
  String rent = caculateRent(info);
  String number = info.getHouseNumber();
  String name = applyInfo.getName();
  String grade = info.getHouseGrade();
  String perRent = info.getHouseRent();
  String area = info.getHouseArea();
  String structure = info.getHouseStructure();
 
  resultBuffer.append("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^"+"n");
  resultBuffer.append("姓名 :"+name+"n");
  resultBuffer.append("分配房屋號碼 :"+number+"n");
  resultBuffer.append("分配房屋等級 :"+grade+"n");
  resultBuffer.append("分配房屋面積(平方米) :"+area+"n");
  resultBuffer.append("分配房屋的結構 :"+structure+"n");
  resultBuffer.append("分配房屋房租(每平方米/元) :"+perRent+"n");
  resultBuffer.append("本月應繳房租(元) :"+rent+"n");
  resultBuffer.append("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^"+"n");
  textArea.append(resultBuffer.toString());
  resultBuffer.setLength(0);
 }
 
}

///////////////////////////////////

/*
管理員對房屋的管理。
*/


import java.sql.*;

public class MasterHouseInfo  {
 private Connection connection;
 private int valueInfo[] = new int[3];
 
 public MasterHouseInfo(Connection connection){
 this.connection = connection;
 }
 
 public int[] execute(){
  valueInfo[0] = getVacantResultCount();
  valueInfo[1] = getHouseResultCount();
  valueInfo[2] = valueInfo[0]+valueInfo[1];
  return valueInfo;
 }
 
 private synchronized int getVacantResultCount(){
  int Count = 0 ;
  try{
  PreparedStatement Stmt = connection.prepareStatement("SELECT COUNT(*) FROM 空房文件");
  ResultSet result = Stmt.executeQuery();
  ResultSetMetaData metadata = result.getMetaData();
  while (result.next()) {
  Count = result.getInt(1);
  }
  Stmt.close();
  }
  catch(Exception e){e.printStackTrace();}
  return Count ;
  }

 private synchronized int getHouseResultCount(){
  int Count = 0; 
  try{
  PreparedStatement Stmt = connection.prepareStatement("SELECT COUNT(*) FROM 住房文件");
  ResultSet result = Stmt.executeQuery();
  ResultSetMetaData metadata = result.getMetaData();
  while (result.next()) {
  Count = result.getInt(1);
  }
  Stmt.close();
  }
  catch(Exception e){e.printStackTrace();}
  return Count ;
  }
 }


///////////////////////////////////////


/*
住戶申請調房,先退房,再分房的原則。
這里沒有給出最好的實現。
*/

import java.sql.*;
import javax.swing.*;

public class PrepareHouse extends Thread {
 private Connection connection;
 private String houseNumber = null;
 private JTextArea textArea;
 
 public PrepareHouse(Connection connection,String houseNumber,
  JTextArea textArea){
  this.connection = connection;
  this.houseNumber = houseNumber;
  this.textArea  = textArea;
 }
 
 public void run(){
  prepareHouse();
 }
 
 public void prepareHouse(){
  new DistributeHouse(connection,textArea).start();
  new QuiteHouse(connection,houseNumber,textArea).start();
  textArea.append("**********調房成功!************");
 }
}

/////////////////////////////////

/*
查詢房屋信息。
*/

import java.sql.*;
import javax.swing.*;

public class QueryHouseInfo extends Thread {
 private Connection connection;
 private StringBuffer resultBuffer;
 private String query ;
 private JTextArea textArea;
 private String info[];
 
 public QueryHouseInfo(Connection connection,String query,
  String info[],JTextArea textArea){
  this.query = query;
  resultBuffer = new StringBuffer();
  this.connection = connection;
  this.textArea = textArea;
  this.info = info ;
 }

 public void run(){
  if(info == null)
  queryHouseInfo(query);
  else
  queryHouseInfo();
  displayResult(resultBuffer);
 }
 
 /*
 查詢房屋所有的信息。
 */
 private synchronized void queryHouseInfo(String tableName){
  try{
  PreparedStatement Stmt = connection.prepareStatement("SELECT * FROM "+tableName);
  ResultSet result = Stmt.executeQuery();
  ResultSetMetaData metadata = result.getMetaData();
  while (result.next()) {
  for(int i=1;i<=metadata.getColumnCount();i++){
  String label = metadata.getColumnLabel(i);
  String info = result.getString(i);
  resultBuffer.append(label+":"+info+"n");
  }
  resultBuffer.append("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^"+"n");
  }
  Stmt.close();
  }
  catch(Exception e){e.printStackTrace();}
  }

/*
以房屋號查詢相關信息。
*/
 private synchronized void queryHouseInfo(){
  try{
  PreparedStatement Stmt = connection.prepareStatement(
  "SELECT "+query+" FROM "+info[2]+" WHERE "+
  info[0]+"=+
  info[1]+");
  ResultSet result = Stmt.executeQuery();
  ResultSetMetaData metadata = result.getMetaData();
  while (result.next()) {
  for(int i=1;i<=metadata.getColumnCount();i++){
  String label = metadata.getColumnLabel(i);
  String info = result.getString(i);
  resultBuffer.append(label+":"+info+"n");
  }
  resultBuffer.append("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^"+"n");
  }
  Stmt.close();
  }
  catch(Exception e){e.printStackTrace();}
  }
 
  private synchronized String getGrade(ApplicationInfo applyInfo){
  return applyInfo.getGrade();
  }

 private synchronized void displayResult(StringBuffer tmp){
  StringBuffer buffer = new StringBuffer();
  buffer.append(tmp.toString());
  textArea.append(buffer.toString());
  resultBuffer.setLength(0);
 }
}

///////////////////////////////////////


/*
用戶申請退房。
*/

import java.sql.*;
import java.util.*;
import javax.swing.*;

public class QuiteHouse extends Thread {
  private Connection connection;
  private String houseNumber = null;
  private StringBuffer resultBuffer;
  private JTextArea textArea;
  private String name = null;
 
  public QuiteHouse(Connection connection,String houseNumber,
  JTextArea textArea){
  this.connection = connection;
  this.houseNumber = houseNumber;
  resultBuffer = new StringBuffer();
  this.textArea = textArea;;
  }
 
  public void run(){
  VacantHouseInfo info = getQuiteHouseInfo();
  updateVacantHouseFile(info);
  updateLodgingHouseFile(info);
  updateRentFile(info);
  displayResult(info);
  }
 

/*
獲得所退房屋得相關信息。
*/
  public synchronized VacantHouseInfo getQuiteHouseInfo(){
  VacantHouseInfo vacantHouseInfo = null;
  try{
  Statement Stmt = connection.createStatement();
  ResultSet result = Stmt.executeQuery("SELECT * FROM 住房文件 WHERE 房號 = +
  houseNumber+");
  ResultSetMetaData metadata = result.getMetaData();
  String houseInfo[] = new String[5];
  while (result.next()) {
  for(int i=3;i<= metadata.getColumnCount();i++){
  houseInfo[i-2] = result.getString(i);
  }
  name = result.getString(2);
  }
  houseInfo[0] = houseNumber;
  vacantHouseInfo = new VacantHouseInfo();
  vacantHouseInfo.setAllAttribute(houseInfo);
  Stmt.close();
  }
  catch(Exception e){e.printStackTrace();}
  return vacantHouseInfo ;
 }
 
 /*
 從房租文件中刪除要退房屋。
*/
 private synchronized  void updateRentFile(VacantHouseInfo info){
  try { Statement Stmt = connection.createStatement();
  Stmt.execute("DELETE FROM 房租文件 WHERE 房號 = "+"+
  info.getHouseNumber()+");
  Stmt.execute("DELETE FROM 房租文件 WHERE 房號 = "+"+
  info.getHouseNumber()+");
  Stmt.close();
  }
  catch (Exception e) {e.printStackTrace();}
  }

 /*
 把以退房屋重新寫入空房文件中。
*/
 private synchronized  void updateVacantHouseFile(VacantHouseInfo info){
  try { PreparedStatement Stmt = connection.prepareStatement("INSERT INTO 空房文件 VALUES(?,?,?,?,?)");
  Stmt.setString(1,info.getHouseNumber());
  Stmt.setString(2,info.getHouseGrade());
  Stmt.setString(3,info.getHouseRent());
  Stmt.setString(4,info.getHouseArea());
  Stmt.setString(5,info.getHouseStructure());
  Stmt.executeUpdate();
  Stmt.close();
  }
  catch (Exception e) {e.printStackTrace();}
  }
 
 /*
  從住房文件中刪除退房信息。
*/
 private synchronized void updateLodgingHouseFile(final VacantHouseInfo info){
  try{  Statement Stmt = connection.createStatement();
  Stmt.execute("DELETE FROM 住房文件 WHERE 房號 = "+"+
  info.getHouseNumber()+");
  Stmt.execute("DELETE FROM 住房文件 WHERE 房號 = "+"+
  info.getHouseNumber()+");
  Stmt.close();
  }
  catch (Exception e) {e.printStackTrace();}
 }
 
 /*
 顯示退房結果。
*/
 private synchronized void displayResult(VacantHouseInfo info){
 
  String number = info.getHouseNumber();
  String grade = info.getHouseGrade();
  String perRent = info.getHouseRent();
  String area = info.getHouseArea();
  String structure = info.getHouseStructure();
 
  resultBuffer.append("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^"+"n");
  resultBuffer.append("退屋者姓名:"+name+"n");
  resultBuffer.append("所退房屋號碼:"+number+"n");
  resultBuffer.append("所退房屋等級:"+grade+"n");
  resultBuffer.append("所退房屋面積(平方米):"+area+"n");
  resultBuffer.append("所退房屋結構:"+structure+"n");
  resultBuffer.append("所退房屋單位面積房租(每平方米/元):"+perRent+"n");
  resultBuffer.append(name+"退屋成功!"+"n");
  resultBuffer.append("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^"+"n");
  textArea.append(resultBuffer.toString());
  resultBuffer.setLength(0);
 }
}

/////////////////////////////////////////

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.border.*;
import java.sql.*;

public class UpdateHouseInfoPanel extends JFrame {
 
  private JButton referButton = new JButton("提及更新信息");
  private JButton reEditButton = new JButton("重填更新信息");
  private JButton updateButton = new JButton("執行更新");
 
  private JCheckBox  grade = new JCheckBox("房屋等級");
  private JCheckBox area = new JCheckBox("房屋面積");
  private JCheckBox rent = new JCheckBox("單位面積房租");
  private JCheckBox structure = new JCheckBox("房屋結構");

  private JTextField  textfiled = new JTextField();
  private JTextField  gradeinfo = new JTextField();
  private JTextField  areainfo = new JTextField();
  private JTextField  rentinfo = new JTextField();
  private JTextField  structureinfo = new JTextField();
 
  private JTextArea textArea ;
  private JComboBox comBox = new JComboBox();
 
  private String itemText ;
  private StringBuffer buffer;
  private Connection connection;

 public UpdateHouseInfoPanel(Connection connection){
  super("管理員更改房屋信息演示");
  buffer = new StringBuffer();
  this.connection = connection;
  getContentPane().setLayout(new BorderLayout());
 getContentPane().add(createPanel(),BorderLayout.CENTER);
  setSize(500,520);
  center(this);
  pack();
  setResizable(false);
  setVisible(true);
  }
 
  public void center(Component C) {
  Dimension SS = C.getToolkit().getScreenSize();
  C.setLocation ((SS.width - 750) / 2,(SS.height - 500) / 2);
  }

 private JPanel createPanel(){
  JPanel mainPanel = new JPanel();
  mainPanel.setLayout(new GridLayout(2,0,5,5));
 
  JPanel p = new JPanel(new DialogLayout2(100,5));
  JPanel rl = new JPanel(new GridLayout(0,2,5,5));
 
  JPanel pr = new JPanel();
  pr.setLayout(new DialogLayout2(100,5));
  pr.add(new DialogSeparator("用戶查詢信息表"));

  JPanel panel = new JPanel(new GridLayout(0,4));
  comBox.addItem("房號");
  comBox.addItem("房屋等級");
  panel.add(new JLabel("選擇更新條件:"));
  panel.add(comBox);
  panel.add(new JLabel("房號/等級:"));
  panel.add(textfiled);

  pr.add(panel);
  pr.add(new JLabel("更改房屋等級為:"));
  pr.add(gradeinfo);
  pr.add(new JLabel("更改房屋面級為:"));
  pr.add(areainfo);
  pr.add(new JLabel("更改單位房租為:"));
  pr.add(rentinfo);
  pr.add(new JLabel("更改房屋結構為:"));
  pr.add(structureinfo);

  JPanel pl = new JPanel();
  pl.setBorder(new TitledBorder(new EtchedBorder(),"選擇需要查詢的信息"));
 
  JPanel checkPanel = new JPanel();
  checkPanel.add(grade);
  checkPanel.add(area);
  checkPanel.add(rent);
  checkPanel.add(structure);
 
  pl.add(checkPanel);

  rl.add(pr);
  rl.add(pl);
 
  p.add(rl);
  p.add(new DialogSeparator("操作"));
  p.add(referButton);
  p.add(reEditButton);
  p.add(updateButton);
 
  textArea = new JTextArea();
  JScrollPane sp = new JScrollPane( textArea );
  mainPanel.add(p);
  mainPanel.add(sp);
 
  gradeinfo.setEditable(false);
  areainfo.setEditable(false);
  rentinfo.setEditable(false);
  structureinfo.setEditable(false);
 
  ButtonListener listener = new ButtonListener() ;
  referButton.addActionListener(listener);
  reEditButton.addActionListener(listener);
  updateButton.addActionListener(listener);
 
  CheckBoxListener checklistener = new CheckBoxListener();
  grade.addActionListener(checklistener);
  area.addActionListener(checklistener);
  rent.addActionListener(checklistener);
  structure.addActionListener(checklistener);
  comBox.addActionListener(new ComboBoxListener());
 
  return mainPanel;
  }

 private void getUpdateInfo(){
  if(grade.isSelected()){
  buffer.append("房屋等級=");
  buffer.append("+gradeinfo.getText()+"+",");
  }
  if(area.isSelected()){
  buffer.append("房屋面積=");
  buffer.append("+areainfo.getText()+"+",");
  }
  if(rent.isSelected()){
  buffer.append("單位面積房租=");
  buffer.append("+rentinfo.getText()+"+",");
  }
  if(structure.isSelected()){
  buffer.append("房屋結構=");
  buffer.append("+structureinfo.getText()+"+",");
  }
 }
 
  private void reEditApplyType(){
  gradeinfo.setText(null);
  areainfo.setText(null);
  rentinfo.setText(null);
  structureinfo.setText(null);
  textfiled.setText(null);
 
  itemText = null;
 
  gradeinfo.setEditable(false);
  areainfo.setEditable(false);
  rentinfo.setEditable(false);
  structureinfo.setEditable(false);

  grade.setSelected(false);
  area.setSelected(false);
  rent.setSelected(false);
  structure.setSelected(false);
  buffer.setLength(0);
  }

  class ButtonListener implements ActionListener {
  public void actionPerformed (ActionEvent ae) {
  object obj = ae.getsource();
  if (obj == updateButton) {
  SwingUtilities.invokeLater(new Runnable() {
  public void run() {
  buffer.deleteCharAt(buffer.length()-1) ;
  new UpdateHouseInfo(buffer.toString()).start();
  }
  });
  }
  else if (obj == referButton) {
  SwingUtilities.invokeLater(new Runnable() {
  public void run() {
  getUpdateInfo();
  }
  });
  }

  else if (obj == reEditButton){
  SwingUtilities.invokeLater(new Runnable() {
  public void run() {
  reEditApplyType();
  }
  });
  }
  }
  }

 class CheckBoxListener implements ActionListener {
  public void actionPerformed (ActionEvent ae) {
  Object obj = ae.getSource();
  if (obj == grade) {
  if(grade.isSelected())
  gradeinfo.setEditable(true);
  else
  gradeinfo.setEditable(false);
  }
  else if (obj == area){
  if(area.isSelected())
  areainfo.setEditable(true);
  else
  areainfo.setEditable(false);
  }
  else if (obj == rent){
  if(rent.isSelected())
  rentinfo.setEditable(true);
  else
  rentinfo.setEditable(false);

  }
  else if (obj == structure){
  if(structure.isSelected())
  structureinfo.setEditable(true);
  else
  structureinfo.setEditable(false);
  }
  }
  }

 class ComboBoxListener implements ActionListener {
  public void actionPerformed (ActionEvent ae) {
  itemText = comBox.getSelectedItem().toString();
  }
  }

 class UpdateHouseInfo extends Thread {
  private String query ;
 
  public UpdateHouseInfo(String query){
  this.query = query;
  }
  public void run(){
  updateHouseInfo();
  }
 
  private void updateHouseInfo(){
  StringBuffer resultBuffer = new StringBuffer();
  try{
  Statement Stmt = connection.createStatement(); 
 
  Stmt.executeUpdate("UPDATE 空房文件 SET "+query+" WHERE "+itemText+"=+
  textfiled.getText()+");
  ResultSet result = Stmt.executeQuery("SELECT * "+"FROM 空房文件 WHERE "+itemText+"=+
  textfiled.getText()+");
  ResultSetMetaData metadata = result.getMetaData();
  while (result.next()) {
  for(int i=1;i<=metadata.getColumnCount();i++){
  String label = metadata.getColumnLabel(i);
  String info = result.getString(i);
  resultBuffer.append(label+":"+info+"n");
  }
  }
  resultBuffer.append("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^"+"n");
  textArea.append("更新成功!!"+"n");
  textArea.append(resultBuffer.toString());
  Stmt.close();
  }
  catch(Exception e){e.printStackTrace();}
  }
 }
}
//////////////////////////////////


/*

包含房屋得相關信息。
*/
public class VacantHouseInfo {
 
 private String house_number = null;
 private String house_grade = null;
 private String house_area = null;
 private String house_rent = null;
 private String house_structure = null;
 
 public VacantHouseInfo(){
 }
 
 public void setAllAttribute(String houseInfo[]){
  house_number = houseInfo[0];
  house_grade = houseInfo[1];
  house_area = houseInfo[2];
  house_rent = houseInfo[3];
  house_structure = houseInfo[4];
 }
 
 public String getHouseNumber(){
  return house_number;
 }
 
 public String getHouseGrade(){
  return house_grade;
 }
 
 public String getHouseArea(){
  return house_area;
 }
 
 public String getHouseRent(){
  return house_rent;
 }
 
 public String getHouseStructure(){
  return house_structure;
 }
}
/////////////////////

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.sql.*;
import java.util.*;
import java.io.*;
import java.awt.image.*;
import com.sun.image.codec.jpeg.* ;

public class TrySql extends JFrame {
  private static Connection connection ;
 
  public TrySql() {
  initializeDemo();
  }
 
 public static void initConnection(){
  try{
  connection = getConnection();
  }
 catch(Exception e){e.printStackTrace();}
  }
 
 public void diSCOnnection(){
  try{
  connection.close();
  }
 catch(Exception e){e.printStackTrace();}
 clearMemory();
 }
 
 public void initializeDemo(){
  addWindowListener(new WindowAdapter(){
  public void windowClosing(WindowEvent e){
  disConnection();
  System.exit(0);
  }
  });
 
  JMenu fileMenu = new JMenu("文件");
  JMenuItem exitItem = new JMenuItem("退出");
  fileMenu.add(exitItem);
  exitItem.addActionListener(new exitMenuHandler());
 
  JMenu helpMenu = new JMenu("幫助");
  JMenuItem aboutItem = new JMenuItem("關于");
  helpMenu.add(aboutItem);
  aboutItem.addActionListener(new aboutMenuHandler());

  JMenuBar menuBar = new JMenuBar();
  menuBar.add(fileMenu);
  menuBar.add(helpMenu);
  setJMenuBar(menuBar);
 
  getContentPane().setLayout(new BorderLayout());
 
  JTabbedPane tabbedpane = new JTabbedPane();
  tabbedpane.add(new DistributeHousePanel(connection),"用戶分房申請演示");
  tabbedpane.add(new QuiteHousePanel(connection),"用戶退房申請演示");
  tabbedpane.add(new PrepareHousePanel(connection),"用戶調房申請演示");
  tabbedpane.add(new QueryHouseInfoPanel(connection),"用戶查詢信息演示");
  tabbedpane.add(new MasterHouseInfoPanel(connection),"住房管理科管理演示");
 
  getContentPane().add(tabbedpane, BorderLayout.CENTER);
 
  setSize(750,560);
  setTitle("住房管理系統演示");
  setResizable(false);
  center(this);
  pack();
  setVisible(true);
 }

 /*
 把主窗口置于屏幕中間。
 */
 
 
  public void center(Component C) {
  Dimension SS = C.getToolkit().getScreenSize();
  Dimension CS = C.getSize();
  C.setLocation ((SS.width - CS.width) / 2,(SS.height - CS.height) / 2);
  }

  /*
  連接到數據庫
  */
  public static Connection getConnection()throws SQLException { 
  try{
  Class.forName("sun.JDBC.odbc.JdbcOdbcdriver");
  }
  catch(Exception e){e.printStackTrace();}
  String url = "jdbc:odbc:住房管理系統";
  String username = "PUBLIC";
  String password = "PUBLIC";
  return
  DriverManager.getConnection(url, username, password);
  }

 public static void main(String args[]){
  initConnection();
  Locale.setDefault(Locale.US);
  new TrySql();
 
 
 }
 
 public static void clearMemory(){
  connection = null;
 }
 
  /*
  退出數據庫。
  */
  class exitMenuHandler implements ActionListener {
  public void actionPerformed( ActionEvent ae ) {
  disConnection();
  System.exit(0);
  }
 }
 
 /*
 顯示幫助文件。
 */
 class aboutMenuHandler implements ActionListener {
  public void actionPerformed( ActionEvent ae ) {
  new JDialog().setVisible(true);
  }
 }
}

感謝你能夠認真閱讀完這篇文章,希望小編分享的“怎么用java實現一個簡單的房屋管理程序”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

青海省| 庆元县| 河南省| 浦东新区| 即墨市| 黄石市| 乌兰察布市| 濮阳市| 平湖市| 阳原县| 儋州市| 鄄城县| 三江| 宜黄县| 丹巴县| 济宁市| 万载县| 福泉市| 河西区| 通渭县| 平顶山市| 阿克苏市| 托克托县| 电白县| 城固县| 广西| 东乡族自治县| 张家川| 海伦市| 肇州县| 新昌县| 辽宁省| 容城县| 米脂县| 丽江市| 通城县| 庄河市| 武定县| 金山区| 永登县| 平阴县|