package Main;
import java.awt.EventQueue;
public class Main {
public static void main(String[] args) {
/**
* Launch the application.
*/
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
test frame = new test("二进制位查看器");
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
}
package Main;
import java.awt.EventQueue;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JLabel;
import javax.swing.JTextField;
import javax.swing.JButton;
public class test extends JFrame {
/**
*
*/
private static final long serialVersionUID = 7483545163057953091L;
private JPanel contentPane;
private JTextField intField;
private JTextField binaryField;
/**
* Create the frame.
*/
public test(String title) {
super(title);
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
setBounds(100, 100, 450, 300);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);
this.setLocation(700, 380);
JPanel panel = new JPanel();
panel.setBounds(0, 0, 434, 262);
contentPane.add(panel);
panel.setLayout(null);
JLabel labelInt = new JLabel("请输入十进制整数:");
labelInt.setFont(new Font("微软雅黑", Font.PLAIN, 12));
labelInt.setBounds(98, 69, 108, 27);
panel.add(labelInt);
intField = new JTextField();
intField.setBounds(216, 72, 130, 21);
panel.add(intField);
intField.setColumns(10);
JLabel labelBinary = new JLabel("该整数的二进制为:");
labelBinary.setFont(new Font("微软雅黑", Font.PLAIN, 12));
labelBinary.setBounds(97, 99, 108, 27);
panel.add(labelBinary);
binaryField = new JTextField();
binaryField.setColumns(10);
binaryField.setBounds(216, 102, 130, 21);
panel.add(binaryField);
JButton Sure = new JButton("确定");
Sure.setFont(new Font("微软雅黑", Font.PLAIN, 12));
Sure.setBounds(182, 153, 93, 23);
panel.add(Sure);
Sure.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
String numText = intField.getText();
try {
int num = Integer.parseInt(numText);// String 转 int
int[] a = new int[32];
int i;
for (i = 1; i < 32; i++)
a[i] = 0;
a[0] = (num < 0) ? 1 : 0;
num *= (num < 0) ? -1 : 1;
boolean T = false;
i = 31;
while (!T) {
a[i--] = num % 2;
num /= 2;
T = (num == 0) ? true : false;
}
int max = 0;
for (i = 0; i < 32; i++)
if (a[i] != 0) {
max = i;
break;
}
String arr = "";
for (i = max; i < 32; i++)
arr += String.valueOf(a[i]);// int 转 String
binaryField.setText(arr);
} catch (NumberFormatException e1) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
error frame = new error();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
intField.setText("");
}
}
});
}
}
package Main;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JLabel;
import java.awt.Font;
public class error extends JFrame {
/**
*
*/
private static final long serialVersionUID = 6013400559790620619L;
private JPanel contentPane;
/**
* Launch the application.
*/
/**
* Create the frame.
*/
public error() {
super("错误!");
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
setBounds(100, 100, 269, 114);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);
this.setLocation(800, 450);
JPanel panel = new JPanel();
panel.setBounds(0, 0, 253, 146);
contentPane.add(panel);
panel.setLayout(null);
JLabel label = new JLabel("请输入十进制整数!");
label.setFont(new Font("微软雅黑", Font.PLAIN, 12));
label.setBounds(71, 30, 108, 15);
panel.add(label);
}
}
(JAVA)二进制位查看器
最新推荐文章于 2024-07-17 14:19:26 发布