图形化界面:输入十进制,输出二进制
输入一个十进制整数,用二进制表示出来。
package day06;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Java_3 extends JFrame {
public Java_3(){
super( "打印无符号整数位" );
Container c = getContentPane();
c.setLayout( new FlowLayout() );
c.add( new JLabel( "请输入整数: " ) );
final JTextField output = new JTextField( 33 );
JTextField input = new JTextField( 10 );
input.addActionListener(
new ActionListener() {
//*********Found********
public void actionPerformed( ActionEvent e ){
int val = Integer.parseInt(
e.getActionCommand() );
//*********Found********
output.setText( getBits( val ) );
}
}
);
c.add( input );
c.add( new JLabel( "该数的二进制位表示是" ) );
output.setEditable( false );
//*********Found********
c.add( output );
setSize( 720, 70 );
setVisible(true);
}
private String getBits( int value ){
int displayMask = 1 << 31;
StringBuffer buf = new StringBuffer( 35 );
for ( int c = 1; c <= 32; c++ ) {
buf.append(
( value & displayMask ) == 0 ? '0' : '1' );
value <<= 1;
if ( c % 8 == 0 )
buf.append( ' ' );
}
return buf.toString();
}
public static void main( String args[] ){
Java_3 app = new Java_3();
app.addWindowListener(
new WindowAdapter() {
//*********Found********
public void windowClosing( WindowEvent e ){
System.exit( 0 );
}
}
);
}
}
运行结果
运用的知识点
-
监听器:
input.addActionListener( //input是一个文本框 new ActionListener() { //新建一个监听器 public void actionPerformed( ActionEvent e ){ //触发了文本框的输入后的实际处理函数 int val = Integer.parseInt( e.getActionCommand() ); output.setText( getBits( val ) ); } } );
-
JTextField类:文本处理的类。
JTextField output= new JTextField( 10 ); 创建一个名为 output的文本框,长度为10。
output.setText(“33”);给文本框输入字符串33,并显示在文本框上面。 -
窗口处理事件:windowClosing( WindowEvent e )为窗口退出。
-
系统处理函数:System.exit( 0 )为系统退出。
-
容器的用法:利用add函数给图形界面添加对象。
Container c = getContentPane(); //创建一个容器
c.setLayout( new FlowLayout() );
c.add( new JLabel( "请输入整数: " ) ); //add函数给界面添加对象
c.add( input );
c.add( new JLabel( "该数的二进制位表示是" ) );
c.add( output );
图形化界面:输入十进制,输出二进制
输入一个十进制整数,用二进制表示出来。
package day06;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Java_3 extends JFrame {
public Java_3(){
super( "打印无符号整数位" );
Container c = getContentPane();
c.setLayout( new FlowLayout() );
c.add( new JLabel( "请输入整数: " ) );
final JTextField output = new JTextField( 33 );
JTextField input = new JTextField( 10 );
input.addActionListener(
new ActionListener() {
//*********Found********
public void actionPerformed( ActionEvent e ){
int val = Integer.parseInt(
e.getActionCommand() );
//*********Found********
output.setText( getBits( val ) );
}
}
);
c.add( input );
c.add( new JLabel( "该数的二进制位表示是" ) );
output.setEditable( false );
//*********Found********
c.add( output );
setSize( 720, 70 );
setVisible(true);
}
private String getBits( int value ){
int displayMask = 1 << 31;
StringBuffer buf = new StringBuffer( 35 );
for ( int c = 1; c <= 32; c++ ) {
buf.append(
( value & displayMask ) == 0 ? '0' : '1' );
value <<= 1;
if ( c % 8 == 0 )
buf.append( ' ' );
}
return buf.toString();
}
public static void main( String args[] ){
Java_3 app = new Java_3();
app.addWindowListener(
new WindowAdapter() {
//*********Found********
public void windowClosing( WindowEvent e ){
System.exit( 0 );
}
}
);
}
}
运行结果
运用的知识点
-
监听器:
input.addActionListener( //input是一个文本框 new ActionListener() { //新建一个监听器 public void actionPerformed( ActionEvent e ){ //触发了文本框的输入后的实际处理函数 int val = Integer.parseInt( e.getActionCommand() ); output.setText( getBits( val ) ); } } );
-
JTextField类:文本处理的类。
JTextField output= new JTextField( 10 ); 创建一个名为 output的文本框,长度为10。
output.setText(“33”);给文本框输入字符串33,并显示在文本框上面。 -
窗口处理事件:windowClosing( WindowEvent e )为窗口退出。
-
系统处理函数:System.exit( 0 )为系统退出。
-
容器的用法:利用add函数给图形界面添加对象。
Container c = getContentPane(); //创建一个容器
c.setLayout( new FlowLayout() );
c.add( new JLabel( "请输入整数: " ) ); //add函数给界面添加对象
c.add( input );
c.add( new JLabel( "该数的二进制位表示是" ) );
c.add( output );