用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值與鋼筋比ρ。

1178-3-1

【本文稿經由台灣省土木技師公會技師報同意轉載;未經允許請勿任意轉載】

 


Ads sidebar 2-1

來來來哩來按個贊!


【版權重要說明】:本網站內容係由該著作權人或團體同意下轉載、或由該作者或會員自行創作上載發表之沒有違反著作權之圖稿內容,一切內容僅代表該個人意見,並非本網站之立場,本站不負任何法律責任;若讀者認為文章或評論有侵權不妥之處,請與聯絡我們,將儘速協同處理;同時未經本網站同意請勿任意轉載內容,我們也將保留一切法律追訴權利。