欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

设有一批英文单词存放在一个数组中,编制一个图形界面程序浏览单词。在界面中安排一个标签显示单词,另有“上一个”、“下一个”两个按钮实现单词的前后翻动。

程序员文章站 2022-05-28 21:49:44
...

可能因为平台的原因,我在IDEA上编写GUI程序用AWT是会出现乱码,即awt貌似不支持中文(找了很多方法都无效),最后只能用swing代替awt了,swing属于轻量级,而且控件更多更广,拥有awt的所有功能,还增加了许多新的方法,在商业工作中一般用swing编程。

用swing实现如下

package zjc.com;

import javax.swing.*;
import java.awt.*;


public class  Test11 extends JFrame{
    int i=0;//记录单词所在位置
    String[] a={"one","two","three","four","five"};
    public Test11(){
        JButton jb1 = new JButton("上一个");
        JButton jb2 = new JButton("下一个");
        JLabel tf = new JLabel(a[0],JLabel.CENTER);//显示单词,默认显示第一个,并将标签内容设置*对齐
        setLayout(new BorderLayout());//将布局改为流式布局,并将panel放在*
        add(jb1,BorderLayout.WEST);//将按钮1放入窗体中
        add(tf,BorderLayout.CENTER);//将标签放入窗体中
        add(jb2,BorderLayout.EAST);//将按钮2放入窗体中
        jb1.addActionListener(e -> {//匿名内部类,点击“上一步”触发
            if(i>=1&&i<=4){//在[1,4]之内时,i-1,否则将i置为4,即回到最后一个单词
                i--;
            }else {
                i=4;
            }
            tf.setText(a[i]);
        });
        jb2.addActionListener(e -> {//匿名内部类,点击“下一步”触发
            if(i>=0&&i<=3){//在[0,3]之内时,i+1,否则将i置0,即回到第一个单词,
                i++;
            }else {
                i=0;
            }
            tf.setText(a[i]);
        });
    }
    public static void main(String[] args) {
        JFrame jf=new Test11();//定义窗体
        jf.setVisible(true);//窗体设置可见
        jf.setSize(400,400);//设置窗体的初始位置
    }
}

运行如下
设有一批英文单词存放在一个数组中,编制一个图形界面程序浏览单词。在界面中安排一个标签显示单词,另有“上一个”、“下一个”两个按钮实现单词的前后翻动。

但是还是想要用awt实现的话怎么办呢,我们可以用简单的记事本去编写命令,这时awt会调用本地的GUI,所以与平台无关,
用awt实现如下:

package zjc.com;

import java.awt.*;


public class  Test11 extends Frame{
    int i=0;//记录单词所在位置
    String[] a={"one","two","three","four","five"};
    public Test11(){
        Button b1 = new Button("上一个");
        Button b2 = new Button("下一个");
        Label tf = new Label(a[0],Label.CENTER);//显示单词,默认显示第一个,并将标签内容设置*对齐
        setLayout(new BorderLayout());//将布局改为 BorderLayout布局
        add(b1,BorderLayout.WEST);//将按钮1放入窗体
        add(tf,BorderLayout.CENTER);//将标签放入窗体
        add(b2,BorderLayout.EAST);//将按钮2放入窗体
        b1.addActionListener(e -> {//匿名内部类,点击“上一步”触发
            if(i>=1&&i<=4){//在[1,4]之内时,i-1,否则将i置为4,即回到最后一个单词
                i--;
            }else {
                i=4;
            }
            tf.setText(a[i]);
        });
        b2.addActionListener(e -> {//匿名内部类,点击“下一步”触发
            if(i>=0&&i<=3){//在[0,3]之内时,i+1,否则将i置0,即回到第一个单词,
                i++;
            }else {
                i=0;
            }
            tf.setText(a[i]);
        });
    }
    public static void main(String[] args) {
        Frame f=new Test11();//定义窗体
        f.setVisible(true);//窗体设置可见
        f.setSize(400,400);//设置窗体的初始位置
    }
}

实验结果如下:
设有一批英文单词存放在一个数组中,编制一个图形界面程序浏览单词。在界面中安排一个标签显示单词,另有“上一个”、“下一个”两个按钮实现单词的前后翻动。

但这里运行时,可能会有人出现GBK编码错误的情况,这里我把解决方案也放在这里,希望可以帮到大家:
CMD运行JAVA出现编码GBK的不可映射字符处理方法

相关标签: Java