Java第二次作业第二题

请编写图像界面程序,用户在第一文本行输入数字,有三个按钮,分别是计算2进制,8进制,16进制,点击其中一个按钮,第一个文本行中的数据转换为相应进制的数显示在第二个文本行中。

package naizi;

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class TextUi extends JFrame implements ActionListener
{

private JTextField input,output;
private JButton tbutton,ebutton,sbutton;
private JLabel inlabel,outlabel;

TextUi(){//构造方法		
	super("进制转换");//标题栏
	this.setSize(300,150);
	this.setLocation(200, 200);
	this.dispose();//关闭按钮方法
//	this.setVisible(true);//显示界面
	this.getContentPane().setLayout(new GridLayout(1,2,5,5));
	JPanel lpanel = new JPanel(new GridLayout(4,1,5,5));
	JPanel rpanel = new JPanel(new GridLayout(3,1,5,5));
	this.getContentPane().add(lpanel); 
	this.getContentPane().add(rpanel);

	inlabel = new JLabel("输入");
	outlabel = new JLabel("输出");
	input = new JTextField("20");
	output = new JTextField();

	lpanel.add(inlabel);
	lpanel.add(input);
	lpanel.add(outlabel);
	lpanel.add(output);
	
	tbutton = new JButton("转换为2进制");
	ebutton = new JButton("转换为8进制");
	sbutton = new JButton("转换为16进制");

	tbutton.addActionListener(this);//给按钮注册监听事件
	ebutton.addActionListener(this);//给按钮注册监听事件
	sbutton.addActionListener(this);//给按钮注册监听事件

	rpanel.add(tbutton);
	rpanel.add(ebutton);
	rpanel.add(sbutton);		
	this.setVisible(true);//显示界面		
}
public static void  main(String [] args){   
    new TextUi();//运行程序窗体
}

public void actionPerformed(ActionEvent e){//按钮单击事件处理方法
String str = input.getText();//获得输入文本行内容
int num = Integer.parseInt(str);//str转换为int
String result = "";  
if(e.getSource()==tbutton ){//判断事件源是不是等于tbutton 
	result = String.valueOf(Integer.toBinaryString(num));//num转换为2进制		
}else if(e.getSource()==ebutton ){//判断事件源是不是等于ebutton 		
	result = String.valueOf(Integer.toOctalString(num));//num转换为8进制 	
} else if(e.getSource()==sbutton ){//判断事件源是不是等于sbutton	
	result = String.valueOf(Integer.toHexString(num));//num转换为16进制 		
}	
output.setText(result);
}
}

运行结果如下:

图一

图二

图三

posted @ 2018-10-17 22:35  干翻苍穹  阅读(605)  评论(0编辑  收藏  举报