Java学习代码合集

Java学习——代码合集 专栏收录该内容
1 篇文章 1 订阅

其实我学习java最根本的原因是:我是一个挺关注外在的人,虽然是个程序员,所以我很喜欢写出那些带有漂亮的界面的程序,因为C总是控制台,我不是很喜欢,在这份java代码合集中,我会记录自己学习Java界面化编程的点点滴滴。

更新:因为C/C++是我主要使用语言,所有后来写界面主要用Qt写了,但我java也会继续学的。我只是给想学界面gui的同志一个思路。可以参考这篇文章Qt5 计算器的实现

可能会有java初学者,我也是,说明,java是一个工程里可以有很多java类class,每一个类class都可以单独运行,不像C语言里只能有一个main()函数可以运行,这是我的代码合集程序结构:

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("请输入一个数");
        int a=scanner.nextInt();
        System.out.printf("%d的平方是%d\n",a,a*a);
    }
}

Java图形化界面求数的平方:

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("用于显示平方结果的标签");
    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位运算:

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本身只产生(0~1)之间的小数,
                (int)(Math.random()*255),
                (int)(Math.random()*255)
        );
    }
}

 

下面呢是一个常见的简陋的登陆界面,这个程序是这个两个类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;            //标签      用户名,密码

    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));  //网格式布局



        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);

    }

}

程序结果如下 :

简单的加法器:

package TEST;



import javax.swing.JOptionPane;  //导入类



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); //获取输入框中输入数据的整数类型

        n2 = Integer.parseInt(input_pane2);//获取输入框中输入数据的整数类型

        sum = n1+n2;

        JOptionPane.showMessageDialog(null, "The sum is: "+sum,"Adding Device",JOptionPane.PLAIN_MESSAGE);

        //第1个参数:null 显示在中央

        //第2个参数:要显示的字符

        //第3个参数:标题栏信息

        //第4个参数:对话框类型

        System.exit(0);  //终结图形用户界面程序必须的

    }

}

结果如下:

说到这里,我其实有些感触,记得上学期,我们做课程设计,当时一个同学的题目是写一个带界面的大数乘除运算器,关于大数乘除的方法,我有时间再总结一下,但是这个界面当时同学其实是不会的,但是现在看,如果单纯实现界面还是比较简单的,首先看我修改的第一个拙劣的界面版本模板:

这样其实就好了很多,起码可以看到加数是哪些了,代码很简单,只需要在输出那行添加上n1和n2的信息就可以了。

JOptionPane.showMessageDialog(null, n1+"+"+n2+" The sum is: "+sum,"Adding Device",JOptionPane.PLAIN_MESSAGE);

 

打赏
文章很值,打赏犒劳作者一下
代码范例列表 第1章 示例描述:本章演示如何开始使用JDK进行程序的开发。 HelloWorldApp.java 第一个用Java开发的应用程序。 firstApplet.java 第一个用Java开发的Applet小程序。 firstApplet.htm 用来装载Applet的网页文件 第2章 示例描述:本章介绍开发Java的基础语法知识。 accumulationByDoWhile.java 用do~while语句写的累加程序 accumulationByFor.java 用for语句写的累加程序 accumulationByWhile.java 用while语句写的累加程序 boolExample.java 演示boolean变量的程序 charExample.java 演示char变量的程序 compare.java 演示前缀、后缀自加之间区别的程序 constCharExample.java 演示转义字符 converseNumber.java 逆向输出数字 daffodilNumber.java 求水仙花数 division.java 演示整除结果 errorCompoundVariable.java 错误使用局部变量示例 factorial.java 求阶乘 Fibonacci.java 求Fiblnacci数列 GcdAndGcm.java 求最大公约数和最小公倍数 errorInit.java 演示变量初始化错误的程序 integerExample.java 演示各种整型变量的使用 isPrime.java 判断素数 leapYearByIf.java 用if语句判断闰年 leapYearByLogical.java 用逻辑表达式判断闰年 lowToUpper.java 小写字母转换成大写字母 lozengeStar.java 输出一个由*组成的菱形 multiplyTable.java 求乘法口诀表 narrowingConversion_1.java 缩减转换引发错误示例1 narrowingConversion_2.java 缩减转换引发错误示例2 notMultipleOfThree.java 把100-200之间不能被3整除的数输出 outputByDoWhile.java 用while循环随机输出数据 outputByWhile.java 用do~while循环随机输出数据 outputMax.java 求两个数中的最大数 overflowExample.java 演示溢出 precedence.java 演示自加运算符的优先级 primeNumber.java 输出100-200之间的所有素数 ranking.java 评定成绩等级 rankingBySwitch.java 用switch语句评定成绩等级 realExample.java 演示浮点数的有效位数 remainder.java 取余运算示例 showBreak.java 利用标号语句跳转出所有循环嵌套 showCount.java 循环计数示例 showDoubleLoop.java 演示双重循环 showDoubleLoopSe.java 改进的双重循环 showOrder_1.java 演示操作数求值顺序示例1 showOrder_2.java 演示操作数求值顺序示例2 sign.java 用条件运算实现符号函数示例 signByIF.java 用if语句实现符号函数示例 triangleStar.java 输出一个由*组成的直角三角形 upperToLowCase.java 大写转换成小写 variableScopeExample.java 变量使用范围示例 第3章 示例描述:本章学习对象和类。 accessMember.java 访问成员变量示例 constructNoPara.java 无参数的构造方法 constructWithPara.java 带参数的构造方法 declareDefault.java 缺省访问权限的使用 declarePrivate.java 私有访问权限的使用 dec
相关推荐
©️2020 CSDN 皮肤主题: 技术黑板 设计师:CSDN官方博客 返回首页

打赏

HeisenbergWDG

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值