初學(xué)者學(xué)習(xí)Java代碼
其實(shí)我學(xué)習(xí)java最根本的原因是:我是一個(gè)挺關(guān)注外在的人,雖然是個(gè)程序員,所以我很喜歡寫出那些帶有漂亮的界面的程序,因?yàn)镃總是控制臺(tái),我不是很喜歡,在這份java代碼合集中,我會(huì)記錄自己學(xué)習(xí)Java界面化編程的點(diǎn)點(diǎn)滴滴。
更新:因?yàn)镃/C++是我主要使用語(yǔ)言,所有后來(lái)寫界面主要用Qt寫了,但我java也會(huì)繼續(xù)學(xué)的。我只是給想學(xué)界面gui的同志一個(gè)思路??梢詤⒖歼@篇文章Qt5 計(jì)算器的實(shí)現(xiàn)
可能會(huì)有java初學(xué)者,,我也是,說明,java是一個(gè)工程里可以有很多java類class,每一個(gè)類class都可以單獨(dú)運(yùn)行,不像C語(yǔ)言里只能有一個(gè)main()函數(shù)可以運(yùn)行,這是我的代碼合集程序結(jié)構(gòu):

helloworld:
- class Javahelloworld {
- public static void main(String args[]){
- System.out.println("hello world\n");
- }}
基本輸入輸出:
- import java.util.Scanner;
- public class ScannerTest {
- public static void main(String[] args){
- Scanner scanner=new Scanner(System.in);
- System.out.print("請(qǐng)輸入一個(gè)數(shù)");
- int a=scanner.nextInt();
- System.out.printf("%d的平方是%d\n",a,a*a);
- }}
Java圖形化界面求數(shù)的平方:
- import java.awt.*;import java.awt.event.*;
- import javax.swing.*;/**包含JFrame*/
- public class AppGraphInOut {
- public static void main(String args[]){
- new AppFrame();
- }} class AppFrame extends JFrame
- { JTextField in=new JTextField(10);
- JButton btn=new JButton("求平方");
- JLabel out=new JLabel("用于顯示平方結(jié)果的標(biāo)簽");
- public AppFrame()
- { setLayout(new FlowLayout());
- getContentPane().add(in);
- getContentPane().add(btn);
- getContentPane().add(out);
- btn.addActionListener(new BtnActionAdapter());
- setSize(400,100);
- setDefaultCloseOperation(DISPOSE_ON_CLOSE); setVisible(true);
- } class BtnActionAdapter implements ActionListener
- { public void actionPerformed(ActionEvent e)
- { String s=in.getText();
- double d=Double.parseDouble(s);
- double sq=d*d;
- out.setText(d+"的平方是:"+sq);
- } }}


Java位運(yùn)算:
- public class BitwiseOperators {
- public static void main(String args[]){
- int a=0b1100;
- int b=0b1010;
- print("a ",a);
- print("b ",b);
- print("a&b ",a&b);
- print("a|b ",a|b);
- print("a^b ",a^b);
- print("~a ",~a);
- print("a<<2 ",a<<2);
- print("a>>2 ",a>>2);
- print("a>>>2 ",a>>>2);
- } static void print(String prefix,int n){
- String s=Integer.toBinaryString(n);
- while(s.length()<4)s="0"+s;
- System.out.print(prefix+" "+s+"\n");
- }}

同心圓:
- import java.awt.*;
- import javax.swing.*;
- public class Circle99Frame extends JFrame {
- public static void main(String args[])
- {
- JFrame frame=new Circle99Frame();
- frame.setDefaultCloseOperation(DISPOSE_ON_CLOSE); frame.setSize(600,600);
- frame.setVisible(true);
- } public void paint( Graphics g)
- {
- g.drawString("circle 99",20,20);
- int x0=getSize().width/2;
- int y0=getSize().height/2;
- for(int r=0;r<getSize().height/2;r+=10)
- { g.setColor(getRandomColor()); g.drawOval(x0-r,y0-r,r*2,r*2);
- } } Color getRandomColor()
- {
- return new Color(
- (int)(Math.random()*255),//random本身只產(chǎn)生(0~1)之間的小數(shù),
- (int)(Math.random()*255),
- (int)(Math.random()*255)
- );
- }
- }
下面呢是一個(gè)常見的簡(jiǎn)陋的登陸界面,這個(gè)程序是這個(gè)兩個(gè)類class共同組成的程序,先看代碼:
- import javax.swing.JFrame;
- import javax.swing.JPanel;
- public class DemoFrame extends JFrame{
- public DemoFrame(DemoPanel panel)
- {
- this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
- this.setSize(300, 200);
- this.setTitle("Frame Demo");
- this.add(panel);
- this.setResizable(false);
- this.setVisible(true);
- } public static void main(String[] args)
- {
- DemoPanel panel = new DemoPanel();
- DemoFrame Frame = new DemoFrame(panel);
- } }
- import java.awt.GridLayout;
- import javax.swing.JButton;
- import javax.swing.JLabel;
- import javax.swing.JPanel;
- import javax.swing.JPasswordField;
- import javax.swing.JTextField;
- public class DemoPanel extends JPanel{
- private JLabel labelUser, labelPassWd; //標(biāo)簽 用戶名,密碼
- private JButton buttonLogin, buttonReset; //按鈕 登錄,重置
- private JTextField textFieldUserName; //文本框 用戶名輸入
- private JPasswordField passWdField; //密碼框 密碼輸入
- private JPanel panelUserName;
- private JPanel panelPassWd;
- private JPanel panelLoginButton;
- public DemoPanel(){
- this.labelUser = new JLabel("用戶名");
- this.labelPassWd = new JLabel("密 碼");
- this.buttonLogin = new JButton("登錄");
- this.buttonReset = new JButton("重置");
- this.textFieldUserName = new JTextField(10);
- this.passWdField = new JPasswordField(10);
- this.panelPassWd = new JPanel();
- this.panelUserName = new JPanel();
- this.panelLoginButton = new JPanel();
- this.setLayout(new GridLayout(3, 1)); //網(wǎng)格式布局
- this.panelUserName.add(this.labelUser);
- this.panelUserName.add(this.textFieldUserName);
- this.panelPassWd.add(this.labelPassWd);
- this.panelPassWd.add(this.passWdField);
- this.panelLoginButton.add(buttonLogin);
- this.panelLoginButton.add(buttonReset);
- this.add(this.panelUserName);
- this.add(this.panelPassWd);
- this.add(this.panelLoginButton);
- }
- }
程序結(jié)果如下 :

簡(jiǎn)單的加法器:
- package TEST; import javax.swing.JOptionPane; //導(dǎo)入類
- public class TEST
- {
- public static void main(String args[])
- {
- String input_pane1,input_pane2;
- int n1,n2,sum; input_pane1 = JOptionPane.showInputDialog("Please input the first number"); //輸入框1
- input_pane2 = JOptionPane.showInputDialog("Please input the second number"); //輸入框2
- n1 = Integer.parseInt(input_pane1); //獲取輸入框中輸入數(shù)據(jù)的整數(shù)類型
- n2 = Integer.parseInt(input_pane2);//獲取輸入框中輸入數(shù)據(jù)的整數(shù)類型
- sum = n1+n2; JOptionPane.showMessageDialog(null, "The sum is: "+sum,"Adding Device",JOptionPane.PLAIN_MESSAGE);
- //第1個(gè)參數(shù):null 顯示在中央
- //第2個(gè)參數(shù):要顯示的字符
- //第3個(gè)參數(shù):標(biāo)題欄信息
- //第4個(gè)參數(shù):對(duì)話框類型
- System.exit(0); //終結(jié)圖形用戶界面程序必須的
- }
- }
結(jié)果如下:



說到這里,我其實(shí)有些感觸,記得上學(xué)期,我們做課程設(shè)計(jì),當(dāng)時(shí)一個(gè)同學(xué)的題目是寫一個(gè)帶界面的大數(shù)乘除運(yùn)算器,關(guān)于大數(shù)乘除的方法,我有時(shí)間再總結(jié)一下,但是這個(gè)界面當(dāng)時(shí)同學(xué)其實(shí)是不會(huì)的,但是現(xiàn)在看,如果單純實(shí)現(xiàn)界面還是比較簡(jiǎn)單的,首先看我修改的第一個(gè)拙劣的界面版本模板:

這樣其實(shí)就好了很多,起碼可以看到加數(shù)是哪些了,代碼很簡(jiǎn)單,只需要在輸出那行添加上n1和n2的信息就可以了。
- JOptionPane.showMessageDialog(null, n1+"+"+n2+" The sum is: "+sum,"Adding Device",JOptionPane.PLAIN_MESSAGE);