数独游戏java版(二)--界面实现

实现效果图:

这里写图片描述

主函数用于启动程序:

package hlc.shudu.app;

import hlc.shudu.src.ShuduHelper;
import hlc.shudu.ui.ShuduMainFrame;

public class AppStart {
   

    public static void main(String[] args) {
        ShuduMainFrame mainFrame = new ShuduMainFrame();
        mainFrame.setVisible(true);

    }
}

主窗体类(包含消息区,时间区,游戏区):

package hlc.shudu.ui;

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Font;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.Time;
import java.text.SimpleDateFormat;

import javax.swing.Icon;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.Timer;
import javax.swing.border.TitledBorder;

/*
 * 数独主窗体
 */
public class ShuduMainFrame extends JFrame {
   

    public static int pass = 1; // 关卡
    public static JLabel lbPass; // 显示关卡的lable
    public static long usedTime = 0; // 玩家用时
    private ShuduCanvers panelCanvers; // 主游戏区
    public static Timer userTimeAction;

    /*
     * 默认构造函数
     */
    public ShuduMainFrame() {
        // 初始化方法
        init();
        // 添加组件
        addComponent();
        // 添加主游戏区
        addCanvers();

    }

    /*
     * 添加主游戏区
     */
    private void addCanvers() {
        panelCanvers = new ShuduCanvers();
        panelCanvers.setBorder(new TitledBorder("游戏区"));

        // 将主游戏区添加到窗体中
        this.add(panelCanvers, BorderLayout.CENTER);

    }

    /*
     * 添加组件区
     */
    private void addComponent() {
        JPanel panelComponent = new JPanel();
        // 添加消息区
        addPanelMsg(panelComponent);
        // 添加时间区
        addPanelTime(panelComponent);

        // 将组件添加到窗体顶部
        this.add(panelComponent, BorderLayout.NORTH);

    }

    private void addPanelTime(JPanel panelComponent) {
        JPanel panelTime = new JPanel();
        panelTime.setBorder(new TitledBorder("时间"));
        panelTime.setLayout(new GridLayout(2, 1));

        final JLabel lbSysTime = new JLabel();
        final JLabel lbUserTime = new JLabel();

        panelTime.add(lbSysTime, BorderLayout.NORTH);
        panelTime.add(lbUserTime, BorderLayout.SOUTH);

        // 设置系统时间定时器
        Timer sysTimeAction = new Timer(500, new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent e) {
                long timeMillis = System.currentTimeMillis();
                SimpleDateFormat df = new SimpleDateFormat(
                        "yyyy-MM-dd HH:mm:ss");
                lbSysTime.setText("    系统时间:  " + df.format(timeMillis
  • 10
    点赞
  • 87
    收藏
    觉得还不错? 一键收藏
  • 8
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值