62,614
社区成员
发帖
与我相关
我的任务
分享
package test.heat;
import java.awt.Component;
import java.awt.FocusTraversalPolicy;
import java.awt.Frame;
import java.awt.Dimension;
import java.awt.BorderLayout;
import java.awt.Panel;
import java.awt.Label;
import java.awt.TextField;
import java.awt.Rectangle;
import java.awt.Button;
public class HeatTest extends Frame {
private static final long serialVersionUID = 1L;
private Panel panel = null;
private Label label = null;
private Label label1 = null;
private Label label2 = null;
private Label label3 = null;
private Label label4 = null;
private Button button = null;
private TextField textField = null;
private TextField textField1 = null;
private TextField textField2 = null;
private TextField textField3 = null;
private TextField textField4 = null;
private Label label5 = null;
/**
* This method initializes panel
*
* @return java.awt.Panel
*/
private Panel getPanel() {
if (panel == null) {
label4 = new Label();
label4.setText("黄铜温度变化量(ΔQ)");
label4.setBounds(new Rectangle(75, 178, 125, 25));
label3 = new Label();
label3.setText("样品上表面温度Q2(℃)");
label3.setBounds(new Rectangle(75, 138, 125, 25));
label2 = new Label();
label2.setText("样品下表面温度Q1(℃)");
label2.setBounds(new Rectangle(75, 98, 125, 25));
label1 = new Label();
label1.setText("样品的半径R(cm)");
label1.setBounds(new Rectangle(75, 58, 125, 25));
label = new Label();
label.setText("样品的厚度H(cm)");
label.setBounds(new Rectangle(75, 18, 125, 25));
panel = new Panel();
panel.setLayout(null);
panel.add(label, null);
panel.add(label1, null);
panel.add(label2, null);
panel.add(label3, null);
panel.add(label4, null);
panel.add(getButton(), null);
panel.add(getTextField(), null);
panel.add(getTextField1(), null);
panel.add(getTextField2(), null);
panel.add(getTextField3(), null);
panel.add(getTextField4(), null);
panel.add(getLabel5(), null);
}
return panel;
}
private Label getLabel5() {
if (label5 == null) {
label5 = new Label();
label5.setBounds(new Rectangle(70, 290, 350, 50));
label5.setText("系数为:");
}
return label5;
}
/**
* This method initializes button
*
* @return java.awt.Button
*/
private Button getButton() {
if (button == null) {
button = new Button();
button.setBounds(new Rectangle(155, 240, 140, 35));
button.setLabel("计算");
button.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent e) {
// System.out.println("actionPerformed()"); // TODO
// Auto-generated Event stub actionPerformed()
calculate();
}
});
}
return button;
}
/**
* This method initializes textField
*
* @return java.awt.TextField
*/
private TextField getTextField() {
if (textField == null) {
textField = new TextField();
textField.requestFocus();
textField.setBounds(new Rectangle(250, 15, 160, 30));
textField.addFocusListener(new java.awt.event.FocusAdapter() {
public void focusGained(java.awt.event.FocusEvent e) {
//System.out.println("focusGained()"); // TODO Auto-generated Event stub focusGained()
textField.selectAll();
}
});
}
return textField;
}
/**
* This method initializes textField1
*
* @return java.awt.TextField
*/
private TextField getTextField1() {
if (textField1 == null) {
textField1 = new TextField();
textField1.setBounds(new Rectangle(250, 95, 160, 30));
textField1.addFocusListener(new java.awt.event.FocusAdapter() {
public void focusGained(java.awt.event.FocusEvent e) {
//System.out.println("focusGained()"); // TODO Auto-generated Event stub focusGained()
textField1.selectAll();
}
});
}
return textField1;
}
/**
* This method initializes textField2
*
* @return java.awt.TextField
*/
private TextField getTextField2() {
if (textField2 == null) {
textField2 = new TextField();
textField2.setBounds(new Rectangle(250, 135, 160, 30));
textField2.addFocusListener(new java.awt.event.FocusAdapter() {
public void focusGained(java.awt.event.FocusEvent e) {
//System.out.println("focusGained()"); // TODO Auto-generated Event stub focusGained()
textField2.selectAll();
}
});
}
return textField2;
}
/**
* This method initializes textField3
*
* @return java.awt.TextField
*/
private TextField getTextField3() {
if (textField3 == null) {
textField3 = new TextField();
textField3.setBounds(new Rectangle(250, 175, 160, 30));
textField3.addFocusListener(new java.awt.event.FocusAdapter() {
public void focusGained(java.awt.event.FocusEvent e) {
//System.out.println("focusGained()"); // TODO Auto-generated Event stub focusGained()
textField3.selectAll();
}
});
}
return textField3;
}
/**
* This method initializes textField4
*
* @return java.awt.TextField
*/
private TextField getTextField4() {
if (textField4 == null) {
textField4 = new TextField();
textField4.setBounds(new Rectangle(250, 55, 160, 30));
textField4.addFocusListener(new java.awt.event.FocusAdapter() {
public void focusGained(java.awt.event.FocusEvent e) {
//System.out.println("focusGained()"); // TODO Auto-generated Event stub focusGained()
textField4.selectAll();
}
});
}
return textField4;
}
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
new HeatTest();
}
/**
* This is the default constructor
*/
public HeatTest() {
super();
initialize();
}
/**
* This method initializes this
*
* @return void
*/
private void initialize() {
// 控制按Tab时焦点的移动移动顺序
FocusTraversalPolicy p = new FocusTraversalPolicy() {
@Override
public Component getComponentAfter(java.awt.Container container,
Component component) {
// TODO Auto-generated method stub
if (getTextField() == component)
return getTextField4();
if (getTextField4() == component)
return getTextField1();
if (getTextField1() == component)
return getTextField2();
if (getTextField2() == component)
return getTextField3();
if (getTextField3() == component)
return getButton();
return getTextField();
}
@Override
public Component getComponentBefore(java.awt.Container container,
Component component) {
// TODO Auto-generated method stub
if (getTextField() == component)
return getButton();
if (getButton() == component)
return getTextField3();
if (getTextField3() == component)
return getTextField2();
if (getTextField2() == component)
return getTextField1();
if (getTextField1() == component)
return getTextField4();
if (getTextField4() == component)
return getTextField();
return getButton();
}
@Override
public Component getDefaultComponent(java.awt.Container container) {
// TODO Auto-generated method stub
return getTextField();
}
@Override
public Component getFirstComponent(java.awt.Container container) {
// TODO Auto-generated method stub
return getTextField();
}
@Override
public Component getLastComponent(java.awt.Container container) {
// TODO Auto-generated method stub
return getButton();
}
};
this.setFocusTraversalPolicy(p);
this.setSize(500, 400);
this.setLocation(500, 100);
this.setMaximumSize(new Dimension(500, 400));
this.setTitle("环氧树脂导热系数计算");
this.add(getPanel(), BorderLayout.CENTER);
this.setResizable(false);
this.setVisible(true);
this.addWindowListener(new java.awt.event.WindowAdapter() {
public void windowClosing(java.awt.event.WindowEvent e) {
// System.out.println("windowClosing()"); // TODO Auto-generated
// Event stub windowClosing()
System.exit(0);
}
});
}
// 将计算结果转换成字符串后添加到label5中显示
private void calculate() {
// System.out.println("测试事件");
CalculateFactor cFactor = new CalculateFactor();
String s = ""; // 定义一个字符串用于在Lable5中显示计算结果
try {
s = "系数为:" + String.valueOf(cFactor.getFactor());
} catch (Exception e) {
// TODO: handle exception
s = "请按正确的数字格式输入数字...";
}
getLabel5().setText(s);
}
// 定义一个非静态内部类,用来对从外部类中取得的数据进行处理
private class CalculateFactor {
private final double BRASSMASS = 0.984; // 定义黄铜的质量
private final double SPECIFICHEATCAPACITY = 393.6; // 定义黄铜的比热容
private final double BRASSRADIUS = 6.152; // 定义黄铜的半径
private final double BRASSTHICK = 1.1241; // 定义黄铜的厚度
private final double PI = 3.1415; // 定义圆周率PI
private final int TIMEINTERVAL = 30; // 定义测量温度的时间差值
// 取得样品的厚度Hb
private double sampleThick = 0.0;
// 取得样品的半径Rb
private double sampleRadius = 0.0;
// 取得样品上边面稳定后的温度
private double sampleTopTemperature = 0.0;
// 取得样品下表面稳定后的温度
private double sampleBottomTemperature = 0.0;
// 取得黄铜自然冷却在Q2附近的温度的变化量ΔQ
private double temperatureInterval = 0.0;
// 计算环氧树脂导热系数的方法
public double getFactor() {
sampleThick = Double.valueOf(getTextField().getText());
sampleRadius = Double.valueOf(getTextField4().getText());
sampleBottomTemperature = Double.valueOf(getTextField1().getText());
sampleTopTemperature = Double.valueOf(getTextField2().getText());
temperatureInterval = Double.valueOf(getTextField3().getText());
double sampleHeatFactor = (BRASSMASS * SPECIFICHEATCAPACITY)
* ((BRASSRADIUS + 2 * BRASSTHICK) / (2 * BRASSRADIUS + 2 * BRASSTHICK))
* (temperatureInterval / TIMEINTERVAL)
* (sampleThick / (sampleBottomTemperature - sampleTopTemperature))
* (1 / (PI * sampleRadius));
return sampleHeatFactor;
}
}
} // @jve:decl-index=0:visual-constraint="326,31"