1.二维数组中行列互换

数组的行列互换,大概实现以后功能

行列互换前:
123
456
789
行列互换后:
147
258
369

思路是利用

int arr2[][] = new int[arr.length][arr.length];
        for (int i = 0; i < arr.length; i++) {// 调整数组行列数据
            for (int j = 0; j < arr[i].length; j++) {
                arr2[i][j] = arr[j][i];
            }

去实现数组互换(注意一点是print()功能是把数组元素输出,再通过println()换行)

详细代码

public class ArrayRowColumnSwap { // 创建类
    public static void main(String[] args) {
        // 创建二维数组
        int arr[][] = new int[][] { { 1, 2, 3 }, { 4, 5, 6 }, { 7, 8, 9 } };
        System.out.println("行列互调前:");
        // 输出二维数组
        printArray(arr);
        int arr2[][] = new int[arr.length][arr.length];
        for (int i = 0; i < arr.length; i++) {// 调整数组行列数据
            for (int j = 0; j < arr[i].length; j++) {
                arr2[i][j] = arr[j][i];
            }
        }
        System.out.println("行列互调后:");
        // 输出行列互调后的二维数组
        printArray(arr2);
    }
    /**
     * 遍历数组并输出数组的全部元素
     */
    private static void printArray(int[][] arr) {
        for (int i = 0; i < arr.length; i++) {// 遍历数组
            for (int j = 0; j < arr.length; j++) {
                System.out.print(arr[i][j] + " ");// 不换行输出数组元素
            }
            System.out.println();   //换行
        }
    }
}

————————————————————————————————————————————

2.按钮控件数组实现计算器界面

195537897.jpg

主要是通过 按钮数组 来管理界面中的所有按钮控件,减少代码量

把所有按钮控件看成一个数组主要通过以上这句来实现,简化了很多:

String[][] names = { { "1", "2", "3", "+" }, { "4", "5", "6", "-" }, { "7", "8", "9", "×" }, { ".", "0", "=", "÷" } };
   JButton[][] buttons = new JButton[4][4];
   for (int row = 0; row < names.length; row++) {
       for (int col = 0; col < names.length; col++) {
           buttons[row][col] = new JButton(names[row][col]); // 创建按钮对象

完整代码注释如下:

package com.lixiyu;
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.GridLayout;
import java.awt.TextField;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.SwingConstants;
import javax.swing.UIManager;
public class CalculatorButtonArray extends JFrame {
    private static final long serialVersionUID = 6626440733001287873L;//保持兼容性
    private JTextField textField;
                                  
public static void main(String args[]){
    try{
        UIManager.setLookAndFeel("com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel");//外观
    }catch(Throwable e){
        e.printStackTrace();
    }
    CalculatorButtonArray frame = new CalculatorButtonArray();
    frame.setVisible(true);//设置窗体可见,默认时为不可见
}
public CalculatorButtonArray() {
    super(); // 继承父类的构造方法
    BorderLayout borderlayout=(BorderLayout) getContentPane().getLayout();//布局管理器那块,暂还不太懂
    borderlayout.setHgap(20);//水平间隔
    borderlayout.setVgap(20);//竖向间隔
    setTitle("按钮数组实现计算机简易功能界面(test1)");
    setBounds(100,100,290,282);//设置窗体的显示位置及大小
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//默认窗体关闭方式
    textField=new JTextField();
    textField.setHorizontalAlignment(SwingConstants.TRAILING);
    textField.setPreferredSize(new Dimension(12, 50));
    getContentPane().add(textField, BorderLayout.NORTH);
    textField.setColumns(10);
    final GridLayout gridLayout = new GridLayout(4, 0); // 创建网格布局管理器对象
    gridLayout.setHgap(5); // 设置组件的水平间距
    gridLayout.setVgap(5); // 设置组件的垂直间距
    JPanel panel = new JPanel(); // 获得容器对象
    panel.setLayout(gridLayout); // 设置容器采用网格布局管理器
    getContentPane().add(panel, BorderLayout.CENTER);
    String[][] names = { { "1", "2", "3", "+" }, { "4", "5", "6", "-" }, { "7", "8", "9", "×" }, { ".", "0", "=", "÷" } };
    JButton[][] buttons = new JButton[4][4];
    for (int row = 0; row < names.length; row++) {
        for (int col = 0; col < names.length; col++) {
            buttons[row][col] = new JButton(names[row][col]); // 创建按钮对象
            buttons[row][col].addActionListener(new ActionListener() {
                @Override
                public void actionPerformed(ActionEvent e) {
                    JButton button = (JButton) e.getSource();
                    String text = textField.getText();
                    textField.setText(text + button.getText());
                }
            });
            panel.add(buttons[row][col]); // 将按钮添加到面板中
        }
    }
}
}

目前没有加入运算功能,所以只是一个简单的空壳,主要为了体现数组的实际应用。

所以还需要继续学习去掌握更多的知识才能让它真正地跑起来。