技師報於85年11月18日土木日創刊 新聞局出版事業登記證局版省報字第48號 | ||||
| 廣告專線 :(02)8961-3968轉142 傳真:(02)2964-1159,2963-4076 地址:新北市板橋區三民路二段37號A3 網址:http://www.twce.org.tw E-mail:mail@twce.org.tw | NO. | ||
|
用Java設計P-M查詢圖 黃英寬 技師 前言 科技的時代,身為古老行業一員,要能迎頭趕上,否則將被這股洪流漸漸所淘汰。『Java』可說是筆者學習程式語言中,認為是較接近人性之思維。應用它編寫柱P-M圖之查詢手法,說明了java功能(物件導向與視窗圖形)強大,而且免費,值得推廣應用。 設定工具物件 1.文字標籤(JLabel): ψPn/Ag、ψMn/Ag/h、型式、fc、fy、查詢rh、圖例、放大、縮小。 2.文字方塊元件(JTextField): ψPn/Ag、ψMn/Ag、fc、fy、圖例。 3.下拉式清單元件(JComboBox):型式(配筋)、查詢rh(柱心比)。 4.滑動軸元件(JSlider):P-M圖形縮小或放大。 5.設定畫布(UserPanel):P-M圖形顯示。 一、 實作 Public class dwFig extends JFrame implements ActionListener,ChangeListener 1. 定義://建立初始值 public dwFig() { super("P-M圖形"); Container c=getContentPane();//註、容器設定 c.setBackground(Color)// 註、容器背景顏色設定 JLabel pylb=new JLabel(String);// 註、文字標籤 JTextField pyjtf=new JTextField(String,int); //註、String初始值設定,int欄位寬度 pyjtf.setEditable(boolean );// 註、boolean 設定可否編輯 JSlider sjsd=new JSlider(int,int,int,int); /*註、滑動軸:第1個int 方向常數如 JSlider.HORIZONTAL(水平)或JSlider.VERTICAL(垂直),其他3個int為最小值、最大值、初始值*/ sjsd.setPaintTicks(true);// 註、刻劃顯示 sjsd.setPaintLabels(true);// 註、刻劃文字顯示 sjsd.setMajorTickSpacing(10);// 註、 刻劃文字顯示間隔 sjsd.addChangeListener(this);//註、驅動式 JComboBox shxjcb=new JComboBox(Object[]); //註、型式,Object[]清單項目。 shxjcb.addActionListener(this); //註、驅動式 JComboBox rhjcb=new JComboBox(Object[]);//查詢rh rhjcb.addActionListener(this); }//註、驅動式 2. 驅動程式 A. 下拉式清單元件 public void actionPerformed(ActionEvent evt) { if(evt.getSource()==shxjcb) { /* 註、型式(配筋) ,內容略列*/} else {/*註、查詢rh(柱心比) ,內容略列*/ } B. 滑動軸元件 public void stateChanged(ChangeEvent evt) { int a=sjsd.getValue(); /*註、取得移動數值,其他內容略列 註、重新繪圖*/ repaint();} C. 滑鼠元件 addMouseListener(new MouseAdapter() { public void mousePressed(MouseEvent evt) {{ Int y=evt.getY();x=evt.getX(); /*註、取得座標,其他內容略列 註、重新繪圖*/ repaint(); }}) D. 繪圖 public void paintComponent(Graphics g) { Graphics2D g2 = (Graphics2D) g; g2.setFont(new Font(String, int,int)); /*註、文字設定: String字型名稱。第2個int樣式如Font.PLAIN、Font.ITALIC、 Font.BOLD。最後int參數是尺寸。*/ g2.setColor(Color);// 註、顏色設定 g2.drawPolyline(int[],int[],int);// 註、繪多邊形線 //註、前2個int[]陣列為座標,最後int總共點數。 g2.drawLine(int,int,int,int); /* 註、繪直線 前2個int為起點座標(x,y),後2個int為終點座標(x2,y2)*/ g2.drawString(String,int,int); /* 註、繪列文字 String為字串內容,後2個為文字位置座標(x,y)*/ } 備註: 1. “;”程式敘述結束符號。 2. “{’和”}”程式區塊符號。 3. ”//”短註解表示,“/*”和“*/”長註解表示,二者不會被編輯執行。 4. String文字以雙引號[“ ]刮起。
二、 執行 如圖示 1. 擇選鈕內變數:即繪製P-M圖更新。 2. 移動滑動桿: 即縮放P-M圖形更新。 3. 以滑鼠點選畫布:點選P-M圖上任意位置,即顯示該點之鋼筋比ρ、Pu/Ag、Mu/Ag/h值。用綠色線條繪出選點並更新之。 結論 柱P-M圖是參考鋼筋混凝土設計手冊(ACI340號委員會編著),將書籍之數值資料,先儲存於資料夾,藉由java程式之輸入,串流物件BufferedRead讀入,並藉由Graphics繪圖功能,將每一筆柱形斷面、配筋型式、鋼筋fy、混凝土fc’與柱心比之資訊呈現。操作上,選取圖形,再以滑鼠點選任一位置,藉由內插法快速演算,以得知壓力桿件容許軸力P、彎矩M值與鋼筋比ρ。
|
Top | Back |