我們歡迎您!! …社團法人臺灣省土木技師公會…

技師報於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.
1178

發  行 人:施義芳
社務委員:洪啟德、陳玫英、鄭明昌、蔡震邦、陳清展、賴建宏、周子劍
     黃騰輝、巫垂晃、謝詳樹、陳菁雲、楊高雄、陳存永、梁詩桐
監  察 人:張長梅、陳錦芳、呂震世、陳永成、伍勝民
社  長:莊均緯

副  社 長:朱弘家、黃清和

總  編 輯:賴建宏

副  總 編:朱煌林
營運總監:陳玫英

總  主 筆:周子劍
本期主筆:朱煌林
執行編撰:李惠華
文字記者:許素梅

Java設計P-M查詢圖

黃英寬  技師

前言

科技的時代,身為古老行業一員,要能迎頭趕上,否則將被這股洪流漸漸所淘汰。『Java』可說是筆者學習程式語言中,認為是較接近人性之思維。應用它編寫柱P-M圖之查詢手法,說明了java功能(物件導向與視窗圖形)強大,而且免費,值得推廣應用。

設定工具物件

1.文字標籤(JLabel): ψPn/Ag、ψMn/Ag/h、型式、fcfy、查詢rh、圖例、放大、縮小。

2.文字方塊元件(JTextField): ψPn/Ag、ψMn/Agfcfy、圖例。

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);

/*註、滑動軸:1int 方向常數如 JSlider.HORIZONTAL(水平)JSlider.VERTICAL(垂直),其他3int為最小值、最大值、初始值*/

   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字型名稱。第2int樣式如Font.PLAINFont.ITALIC Font.BOLD。最後int參數是尺寸。*/

g2.setColor(Color);// 註、顏色設定

g2.drawPolyline(int[],int[],int);// 註、繪多邊形線

//註、前2int[]陣列為座標,最後int總共點數。

g2.drawLine(int,int,int,int);

/* 註、繪直線

2int為起點座標(x,y),後2int為終點座標(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/AgMu/Ag/h值。用綠色線條繪出選點並更新之。

結論

P-M圖是參考鋼筋混凝土設計手冊(ACI340號委員會編著),將書籍之數值資料,先儲存於資料夾,藉由java程式之輸入,串流物件BufferedRead讀入,並藉由Graphics繪圖功能,將每一筆柱形斷面、配筋型式、鋼筋fy、混凝土fc’與柱心比之資訊呈現。操作上,選取圖形,再以滑鼠點選任一位置,藉由內插法快速演算,以得知壓力桿件容許軸力P、彎矩M值與鋼筋比ρ。

 

 

 

 

返回上一畫面

    Top   Back