//====================================================== // Termodinamik-nümerik analiz paketleri // Plot (Çizim ) - Wet air simulasyon programı integrasyonu // Dr. Turhan Coban // EGE Üniversitesi Mühendislik Fakultesi, Makina Bölümü // turhan.coban@ege.edu.tr // ===================================================== /* * Bu proğram yaş hava için */ import java.lang.Integer; import java.awt.*; import java.awt.event.*; import java.awt.font.*; import java.awt.geom.*; import java.awt.image.*; import javax.swing.*; import java.util.Locale; import java.text.*; import java.io.*; import java.awt.*; import java.awt.event.*; import java.util.*; import javax.swing.table.*; //import java.io.*; //import Plot2D2; //import PlotShapesSW; //import BasicWindowMonitor; public class psT extends JApplet implements ItemListener,ActionListener, MouseListener,MouseMotionListener { Container contentPane; JPanel inputPanel; JPanel outputPanel; JPanel totalPanel; JLabel l1[]=new JLabel[5]; // Label prompt unit JLabel l2[]=new JLabel[5]; // Label prompt unit JTextField t1[]=new JTextField[4]; JComboBox c1[]=new JComboBox[2]; JTextArea output; JTable jt; yashavaModel wam; yashava wa; double aa[]=new double[14]; //controls wet air output variables public String unit; public String pair; public double v1; public double v2; public double P; protected StringTokenizer token; String s1[]={"SI","EN"}; String s2[]={"tdb_w","tdb_twb","tdb_rh","tdb_tdew","tdb_pv","tdb_dos","tdb_h","tdb_s","w_rh","w_h"}; Color bg; double xx[]; double yy[]; int xn; String line=""; //public double P; private String s=""; f2 ff=new f2(); boolean inAnApplet = true; final static String KONTROLPANEL = "Kontrol sayfası "; final static String PLOTPANEL = "Psikometrik diyagram"; final static String psikometri = "Yaş havanın özellikleri"; public Plot2D2 jta; double xi1,yi1,xi2,yi2,xi,yi; JTable ajt,ajt2; //table JTextArea textA; //Text Area JLabel altbar; //writing area JLabel promptXmin; // Label prompt in Xmin field JLabel promptXmax; // Label prompt in Xmax field JLabel promptYmin; // Label prompt in Ymin field JLabel promptYmax; // Label prompt in Ymax field JLabel promptLabel; // Label prompt Plot Label JLabel promptXLabel; // Label prompt Plot XLabel JLabel promptYLabel; // Label prompt Plot YLabel JLabel promptXntic; // Label prompt in Xmin field JLabel promptYntic; // Label prompt in Xmax field JLabel promptXgridon; // Label prompt in Ymin field JLabel promptYgridon; // Label prompt in Ymax field JTextField inputXmin; // input field Xmin JTextField inputXmax; // input field Xmax JTextField inputYmin; // input field Ymin JTextField inputYmax; // input field Ymax JTextField inputLabel; // input field Label JTextField inputXLabel; // input field XLabel JTextField inputYLabel; // input field YLabel JTextField inputXntic; // input field xntic JTextField inputYntic; // input field yntic JCheckBox inputXgridon; // input field xgridon JCheckBox inputYgridon; // input field ygridon JButton printButton; public void setP(double ppi) { P=ppi; } public double getP(double ppi) { return P; } public double readP() { // pressure input from screen // not that you can change pressure value inside program but you can draw // psychrometric diagram only once for the pressure set up by this method String s; s=JOptionPane.showInputDialog("Basınç değerini bar cinsinden giriniz (1 atm = 1.01325 bar)"); double pi=Double.parseDouble(s); if(pi<=0 ) pi=1.01325; P=pi; return pi; } public void setArea() { String s=""; s+="Dr. Turhan Çoban, \n"; s+="Ege Üniversitesi, Mühendislik Bilimleri Fak., Makina Bölümü\n"; s+="telefon : 90(232)3434000-5387\n"; s+="cep tel : 90(537)9333399\n"; s+="e-posta : turhan.coban@ege.edu.tr\n"; s+="ağ : www.axtelsoft.com/turhan.coban\n"; //note if you would like to list additional information on the screen //add to string s output.setText(s); wam.setValues(unit,pair,v1,v2,P); output.setBackground(contentPane.getBackground()); } public void init() { init1(readP()); } public void init1(double pp1) { //super(pi.label); double P1=pp1; yashava w=new yashava(); double aa[]=new double[14]; double bb[]=new double[14]; f2 ff=new f2(); double x1[][]=new double[62][51]; double y1[][]=new double[62][51]; double A[][][]=new double[2][62][51]; A=psplot(P1); for(int i=0;iaa[5]) yi=aa[5]; xn++; xx[xn-1]=xi;yy[xn-1]=yi; jta.setXY(xx,yy,xn); altbar.setText(e+" ["+toString(xi,5,2)+" , "+toString(yi,6,4)+"] "); wam.setValues(unit,"tdb_w",xi,yi,P); line=wam.readValue()+"\n"; textA.append(line); pair="tdb_w"; int loc=pair.indexOf('_'); String ss1=pair.substring(0,loc); String ss2=pair.substring((loc+1),pair.length()); t1[3].setText(pair); t1[1].setText(""+xi); t1[2].setText(""+yi); ss1="tdb"; l1[3].setText(" Kuru hava sıcaklığı"); ss2="w"; l1[4].setText(" özgül nem "); l2[2].setText(" bar"); l2[3].setText(" derece C "); l2[4].setText(" kg su buharı/kg kuru hava"); t1[1].setText(""+xi); t1[2].setText(""+yi); //System.out.print(line); jta.yenidenciz(); repaint(); } public void degerleriGir1(String e,int x,int y) { s=e; xi1=jta.p1.xmin+(double)(x-jta.p1.xabsmin)/(double)jta.p1.abswidth*(jta.p1.xmax-jta.p1.xmin); yi1=jta.p1.ymin-(double)(y-jta.p1.yabsmin-jta.p1.absheight)/(double)jta.p1.absheight*(jta.p1.ymax-jta.p1.ymin); altbar.setText(e+" ["+toString(xi1,5,2)+" , "+toString(yi1,6,4)+"] "); } public void mouseClicked(MouseEvent e) { } public void mousePressed(MouseEvent e) { degerleriGir("Basıldı",e.getX(),e.getY()); } public void mouseReleased(MouseEvent e) { } public void mouseEntered(MouseEvent e) { } public void mouseExited(MouseEvent e) { } //MouseMotionListener (fare hareket dinleyicisi) metotlari public void mouseDragged(MouseEvent e) {degerleriGir1("Fare tuş basılı hareket ediyor",e.getX(),e.getY());} public void mouseMoved(MouseEvent e) {degerleriGir1("Fare hareket ediyor",e.getX(),e.getY());} public static String toString(double left, int w, int d) // converts a double to a string with given width and decimals. { NumberFormat df=NumberFormat.getInstance(Locale.US); df.setMaximumFractionDigits(d); df.setMinimumFractionDigits(d); df.setGroupingUsed(false); String s = df.format(left); while (s.length() < w) s = " " + s; if (s.length() > w) { s = ""; for (int i=0; i0.99) { h=aa[8]; A[0][11+j][0]=t;A[1][11+j][0]=aa[5];bb=w.property1("w_h",0.0,h,P); A[0][11+j][1]=bb[10];A[1][11+j][1]=0.0; } A[0][i][j]=t; A[1][i][j]=aa[5]; j++; } i++; } return A; } public static void open() { //main program for applet input JFrame f = new JFrame("hava su buharı karışımının termodinamik özellikleri-psikometrik diyagram"); f.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) {System.exit(0);} }); JApplet applet = new psT(); f.getContentPane().add("Center", applet); applet.init(); f.pack(); f.setSize(new Dimension(1000,800)); f.setVisible(true); } public static void main(String s[]) { //main program JFrame f = new JFrame("hava su buharı karışımının termodinamik özellikleri-psikometrik diyagram"); f.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) {System.exit(0);} }); JApplet applet = new psT(); f.getContentPane().add("Center", applet); applet.init(); f.pack(); f.setSize(new Dimension(1000,800)); f.setVisible(true); } }