(1)分析找出问题域中的对象,并将对象归类,注意筛选掉不必要的对象或类。
(2)确定类的属性。
(3)确定对象之间的关系,包括依赖、泛化、关联、实现等等。
import java.awt.*;
import javax.swing.*;
import javax.swing.event.*;
public class BinaryJFrame extends JFrame implements CaretListener
{
private JTextField texts[];
public BinaryJFrame()
{
super("十进制整数转换");
this.setBounds(300,240,440,140);
this.setResizable(false);
this.setBackground(Color.lightGray);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
this.getContentPane().setLayout(new FlowLayout(FlowLayout.RIGHT));
String labelstr[]={"十进制","二进制","八进制","十六进制"};
texts = new JTextField[labelstr.length];
for (int i=0; i<texts.length; i++)
{
this.getContentPane().add(new JLabel(labelstr[i]));
texts[i] = new JTextField(32);
texts[i].setEditable(false);
this.getContentPane().add(texts[i]);
}
texts[0].setEditable(true);
texts[0].setText("-1");
texts[0].addCaretListener(this); //注册文本编辑事件监听器
this.caretUpdate(null);
this.setVisible(true);
}
public void caretUpdate(CaretEvent e) //文本编辑事件处理方法
{
try
{
int i = Integer.parseInt(texts[0].getText());
texts[1].setText(Integer.toBinaryString(i)); //二进制
texts[2].setText(Integer.toOctalString(i)); //八进制
texts[3].setText(Integer.toHexString(i)); //十六进制
//或
// texts[2].setText(String.format("%o", i)); //八进制
// texts[3].setText(String.format("%x", i)); //十六进制
}
catch(NumberFormatException nfe)
{
JOptionPane.showMessageDialog(this,"/""+texts[0].getText()+"/"不能转换,请重新输入!");
}
finally{}
}
public static void main(String arg[])
{
new BinaryJFrame();
}
}