50,523
社区成员
发帖
与我相关
我的任务
分享
int a = 3, b = 4, c = 5;//三邊長
int p = (a + b + c) / 2;//半周長
Math.sqrt(p * (p - a) * (p - b) * (p - c));//面積
import java.awt.GridLayout;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JTextField;
import javax.swing.SwingConstants;
public class MainFrame extends JFrame {
private JTextField length1;
private JTextField length2;
private JTextField length3;
private JTextField array[];
public MainFrame() {
init();
}
private void init() {
length1 = createTextField("1");
length2 = createTextField("2");
length3 = createTextField("3");
array = new JTextField[3];
array[0] = length1;
array[1] = length2;
array[2] = length3;
this.setLayout(new GridLayout(3, 2));
this.add(new JLabel("边长A", SwingConstants.CENTER));
this.add(length1);
this.add(new JLabel("边长B", SwingConstants.CENTER));
this.add(length2);
this.add(new JLabel("边长C", SwingConstants.CENTER));
this.add(length3);
this.setSize(200, 150);
this.setTitle("计算三角形面积");
this.setVisible(true);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
}
private JTextField createTextField(String name) {
final JTextField t = new JTextField(6);
t.setName(name);
t.addKeyListener(new KeyListener() {
@Override
public void keyTyped(KeyEvent arg0) {
}
@Override
public void keyReleased(KeyEvent arg0) {
}
@Override
public void keyPressed(KeyEvent arg0) {
if (arg0.getKeyCode() == KeyEvent.VK_SPACE) {
clear();
length1.grabFocus();
} else if (arg0.getKeyCode() == KeyEvent.VK_ENTER) {
if (check()) {
JOptionPane
.showMessageDialog(MainFrame.this, getArea());
} else {
JOptionPane.showMessageDialog(MainFrame.this,
"请完整填写数据或者三条边无法构成三角形!");
}
}
}
});
return t;
}
private Object getArea() {
return 123;
}
private void clear() {
length1.setText("");
length2.setText("");
length3.setText("");
}
private boolean check() {
for (JTextField t : array) {
if (!t.getText().matches("^[0-9]+$")) {
return false;
}
}
int x = Integer.parseInt(length1.getText());
int y = Integer.parseInt(length2.getText());
int z = Integer.parseInt(length3.getText());
if (x + y < z || x + z < y || y + z < x)
return false;
return true;
}
public static void main(String[] args) {
new MainFrame();
}
}