基于SSM+Vue的网上拍卖系统

2023-11-02

末尾获取源码
开发语言:Java
Java开发工具:JDK1.8
后端框架:SSM
前端:采用Vue技术开发
数据库:MySQL5.7和Navicat管理工具结合
服务器:Tomcat8.5
开发软件:IDEA / Eclipse
是否Maven项目:是


目录

一、项目简介

二、系统功能

三、系统项目截图

前台功能模块

买家后台功能模块

卖者后台功能模块

管理员后台功能模块

四、核心代码

登录相关

文件上传

封装

五、系统测试 

六、总结


一、项目简介

随着科学技术的飞速发展,各行各业都在努力与现代先进技术接轨,通过科技手段提高自身的优势,商品拍卖当然也不能排除在外,随着商品拍卖管理的不断成熟,它彻底改变了过去传统的经营管理方式,不仅使商品拍卖管理难度变低了,还提升了商品拍卖管理的灵活性。这种个性化的网上商品拍卖特别注重交互协调经营与管理的相互配合,激发了管理人员的创造性与主动性,对商品拍卖的管理而言非常有利。

网上拍卖系统的设计主要是对系统所要实现的功能进行详细考虑,确定所要实现的功能后进行界面的设计,在这中间还要考虑如何可以更好的将功能及页面进行很好的结合,方便用户可以很容易明了的找到自己所需要的信息,还有系统平台后期的可操作性,通过对信息内容的详细了解进行技术的开发。

本设计的基本思想就是采用SSM框架开发网上拍卖系统,以Java为开发语言,MySQL为数据库,测试结果表明,该网上拍卖系统能以一种简便、轻量级的方式实现了管理的基本功能,降低了开发的复杂性,提高了系统的可维护性,具有一定的应用价值。


二、系统功能

架构设计的目的是反映一个结构和其他元素之间的关系,抽象,通常用于指导大型软件系统。将一个巨大的任务细分为多个小任务的过程是系统架构的总体设计。完成小任务后,整个任务就可以完成了。具体的实现过程是分解系统,分析各部分的功能、接口和逻辑关系。页面是一个一个模块组建而成的,层次结构分明,思想运用的是面向对象,一个实体对应一个数据类型,还要对每个数据类添加一个实施类。

网上拍卖系统的实现主要包括拍卖者、买家和管理员三个用户角色,由于系统用户角色不同所使用的功能模块相应不同,管理员根据需求对系统功能模块进行维护管理操作。

根据我们对网上拍卖系统的功能要求进行分析,我们将本系统划分为以下几各主要的模块:



三、系统项目截图

前台功能模块

用户进入网上拍卖系统平台可以查看首页、竞拍商品、留言反馈、个人中心、后台管理等操作

 

个人中心:通过列表可以获取买家姓名、性别、手机号码、邮箱等信息,进行在线更新个人信息操作

 

竞拍商品页面:通过页面可以获取竞拍图片、数量、名称、起拍价、拍卖账号、拍卖账号、姓名、商品描述等信息,进行查看竞拍操作

 

留言反馈:通过页面可以在线输入留言内容等信息,进行在线留言反馈操作

 

买家后台功能模块

卖家通过登录进入后台页面可以进行查看个人中心、竞拍信息管理、竞拍结果管理、买家评价管理、留言板管理等信息,进行相对应操作。

竞拍信息管理:通过列表可以在线获取竞拍编号、商品名称、拍卖账号、姓名、数量、起拍价、竞拍价格、竞拍日期、买家账号、买家姓名、手机号码等信息,进行在线查看、评价、修改或删除操作。

 竞拍结果管理:通过列表可以在线获取竞拍编号、商品名称、数量、竞拍价格、竞拍日期、买家账号、买家姓名、手机号码、竞拍结果、拍卖账号、姓名等信息,进行在线查看详情操作

买家评价管理:通过列表可以在线获取竞拍编号、商品名称、数量、竞拍价格、竞拍日期、买家账号、买家姓名、手机号码、买家评价、买家评分、拍卖账号、姓名等信息,进行在线查看详情、修改或删除操作

 

留言板管理:通过列表可以在线获取用户名、留言内容、回复内容等信息,进行在线查看详情、删除操作

 

卖者后台功能模块

拍卖者通过登录进入后台页面可以进行查看个人中心、竞拍商品管理、竞拍信息管理、竞拍结果管理、买家评价管理等信息,进行相对应操作。

个人信息:通过列表可以在线输入拍卖账号、姓名、头像、性别、邮箱等信息,进行在线修改更新操作

 

竞拍商品管理:通过列表可以在线获取商品名称、图片、数量、起拍价、发布日期、姓名等信息,进行在线查看、新增、删除操作

 

竞拍信息管理:通过列表可以在线获取竞拍编号、商品名称、拍卖账号、姓名、数量、起拍价、竞拍价格、竞拍日期、买家账号、买家姓名、手机号码等信息,进行在线查看、评价、修改或删除操作

 

竞拍结果管理:通过列表可以在线获取竞拍编号、商品名称、数量、竞拍价格、竞拍日期、买家账号、买家姓名、手机号码、竞拍结果、拍卖账号、姓名等信息,进行在线查看、详情或删除操作

 

管理员后台功能模块

管理员通过登录界面,进行在线填写用户名和密码,信息输入完成后选择提交,用户登录完成操作

 

管理员通过登录进入后台页面可以进行查看个人中心、买家管理、拍卖者管理、竞拍商品管理、竞拍信息管理、竞拍结果管理、买家评论管理、留言板管理、管理员管理等信息,进行相对应操作。

买家管理,管理员根据需求可以在线查看系统已有的买家信息,买家账号、买家姓名、头像、性别、手机号码、邮箱等信息,并结合需求进行在线查看详情、新增、修改、删除操作

 

拍卖者管理,管理员根据需求可以在线查看系统已有的拍卖者信息,拍卖账号、买姓名、头像、性别、联系电话、邮箱、身份证号等信息,并结合需求进行在线查看详情、新增、修改、删除操作

 

竞拍信息管理:通过列表可以在线获取竞拍编号、商品名称、拍卖账号、姓名、数量、起拍价、竞拍价格、竞拍日期、买家账号、买家姓名、手机号码等信息,进行在线查看、评价、修改或删除操作

 

竞拍结果管理:通过列表可以在线获取竞拍编号、商品名称、数量、竞拍价格、竞拍日期、买家账号、买家姓名、手机号码、竞拍结果、拍卖账号、姓名等信息,进行在线查看详情操作

 

买家评价管理:通过列表可以在线获取竞拍编号、商品名称、数量、竞拍价格、竞拍日期、买家账号、买家姓名、手机号码、买家评价、买家评分、拍卖账号、姓名等信息,进行在线查看详情、修改或删除操作

 

留言板管理:通过列表可以在线获取用户名、留言内容、回复内容等信息,进行在线查看详情、修改、在线回复、删除操作

 


四、核心代码

登录相关


package com.controller;


import java.util.Arrays;
import java.util.Calendar;
import java.util.Date;
import java.util.Map;

import javax.servlet.http.HttpServletRequest;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;

import com.annotation.IgnoreAuth;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.entity.TokenEntity;
import com.entity.UserEntity;
import com.service.TokenService;
import com.service.UserService;
import com.utils.CommonUtil;
import com.utils.MD5Util;
import com.utils.MPUtil;
import com.utils.PageUtils;
import com.utils.R;
import com.utils.ValidatorUtils;

/**
 * 登录相关
 */
@RequestMapping("users")
@RestController
public class UserController{
	
	@Autowired
	private UserService userService;
	
	@Autowired
	private TokenService tokenService;

	/**
	 * 登录
	 */
	@IgnoreAuth
	@PostMapping(value = "/login")
	public R login(String username, String password, String captcha, HttpServletRequest request) {
		UserEntity user = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", username));
		if(user==null || !user.getPassword().equals(password)) {
			return R.error("账号或密码不正确");
		}
		String token = tokenService.generateToken(user.getId(),username, "users", user.getRole());
		return R.ok().put("token", token);
	}
	
	/**
	 * 注册
	 */
	@IgnoreAuth
	@PostMapping(value = "/register")
	public R register(@RequestBody UserEntity user){
//    	ValidatorUtils.validateEntity(user);
    	if(userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername())) !=null) {
    		return R.error("用户已存在");
    	}
        userService.insert(user);
        return R.ok();
    }

	/**
	 * 退出
	 */
	@GetMapping(value = "logout")
	public R logout(HttpServletRequest request) {
		request.getSession().invalidate();
		return R.ok("退出成功");
	}
	
	/**
     * 密码重置
     */
    @IgnoreAuth
	@RequestMapping(value = "/resetPass")
    public R resetPass(String username, HttpServletRequest request){
    	UserEntity user = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", username));
    	if(user==null) {
    		return R.error("账号不存在");
    	}
    	user.setPassword("123456");
        userService.update(user,null);
        return R.ok("密码已重置为:123456");
    }
	
	/**
     * 列表
     */
    @RequestMapping("/page")
    public R page(@RequestParam Map<String, Object> params,UserEntity user){
        EntityWrapper<UserEntity> ew = new EntityWrapper<UserEntity>();
    	PageUtils page = userService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.allLike(ew, user), params), params));
        return R.ok().put("data", page);
    }

	/**
     * 列表
     */
    @RequestMapping("/list")
    public R list( UserEntity user){
       	EntityWrapper<UserEntity> ew = new EntityWrapper<UserEntity>();
      	ew.allEq(MPUtil.allEQMapPre( user, "user")); 
        return R.ok().put("data", userService.selectListView(ew));
    }

    /**
     * 信息
     */
    @RequestMapping("/info/{id}")
    public R info(@PathVariable("id") String id){
        UserEntity user = userService.selectById(id);
        return R.ok().put("data", user);
    }
    
    /**
     * 获取用户的session用户信息
     */
    @RequestMapping("/session")
    public R getCurrUser(HttpServletRequest request){
    	Long id = (Long)request.getSession().getAttribute("userId");
        UserEntity user = userService.selectById(id);
        return R.ok().put("data", user);
    }

    /**
     * 保存
     */
    @PostMapping("/save")
    public R save(@RequestBody UserEntity user){
//    	ValidatorUtils.validateEntity(user);
    	if(userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername())) !=null) {
    		return R.error("用户已存在");
    	}
        userService.insert(user);
        return R.ok();
    }

    /**
     * 修改
     */
    @RequestMapping("/update")
    public R update(@RequestBody UserEntity user){
//        ValidatorUtils.validateEntity(user);
        userService.updateById(user);//全部更新
        return R.ok();
    }

    /**
     * 删除
     */
    @RequestMapping("/delete")
    public R delete(@RequestBody Long[] ids){
        userService.deleteBatchIds(Arrays.asList(ids));
        return R.ok();
    }
}

文件上传

package com.controller;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.Arrays;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Random;
import java.util.UUID;

import org.apache.commons.io.FileUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import org.springframework.util.ResourceUtils;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;

import com.annotation.IgnoreAuth;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.entity.ConfigEntity;
import com.entity.EIException;
import com.service.ConfigService;
import com.utils.R;

/**
 * 上传文件映射表
 */
@RestController
@RequestMapping("file")
@SuppressWarnings({"unchecked","rawtypes"})
public class FileController{
	@Autowired
    private ConfigService configService;
	/**
	 * 上传文件
	 */
	@RequestMapping("/upload")
	public R upload(@RequestParam("file") MultipartFile file,String type) throws Exception {
		if (file.isEmpty()) {
			throw new EIException("上传文件不能为空");
		}
		String fileExt = file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf(".")+1);
		File path = new File(ResourceUtils.getURL("classpath:static").getPath());
		if(!path.exists()) {
		    path = new File("");
		}
		File upload = new File(path.getAbsolutePath(),"/upload/");
		if(!upload.exists()) {
		    upload.mkdirs();
		}
		String fileName = new Date().getTime()+"."+fileExt;
		File dest = new File(upload.getAbsolutePath()+"/"+fileName);
		file.transferTo(dest);
		FileUtils.copyFile(dest, new File("C:\\Users\\Desktop\\jiadian\\springbootl7own\\src\\main\\resources\\static\\upload"+"/"+fileName));
		if(StringUtils.isNotBlank(type) && type.equals("1")) {
			ConfigEntity configEntity = configService.selectOne(new EntityWrapper<ConfigEntity>().eq("name", "faceFile"));
			if(configEntity==null) {
				configEntity = new ConfigEntity();
				configEntity.setName("faceFile");
				configEntity.setValue(fileName);
			} else {
				configEntity.setValue(fileName);
			}
			configService.insertOrUpdate(configEntity);
		}
		return R.ok().put("file", fileName);
	}
	
	/**
	 * 下载文件
	 */
	@IgnoreAuth
	@RequestMapping("/download")
	public ResponseEntity<byte[]> download(@RequestParam String fileName) {
		try {
			File path = new File(ResourceUtils.getURL("classpath:static").getPath());
			if(!path.exists()) {
			    path = new File("");
			}
			File upload = new File(path.getAbsolutePath(),"/upload/");
			if(!upload.exists()) {
			    upload.mkdirs();
			}
			File file = new File(upload.getAbsolutePath()+"/"+fileName);
			if(file.exists()){
				/*if(!fileService.canRead(file, SessionManager.getSessionUser())){
					getResponse().sendError(403);
				}*/
				HttpHeaders headers = new HttpHeaders();
			    headers.setContentType(MediaType.APPLICATION_OCTET_STREAM);    
			    headers.setContentDispositionFormData("attachment", fileName);    
			    return new ResponseEntity<byte[]>(FileUtils.readFileToByteArray(file),headers, HttpStatus.CREATED);
			}
		} catch (IOException e) {
			e.printStackTrace();
		}
		return new ResponseEntity<byte[]>(HttpStatus.INTERNAL_SERVER_ERROR);
	}
	
}

封装

package com.utils;

import java.util.HashMap;
import java.util.Map;

/**
 * 返回数据
 */
public class R extends HashMap<String, Object> {
	private static final long serialVersionUID = 1L;
	
	public R() {
		put("code", 0);
	}
	
	public static R error() {
		return error(500, "未知异常,请联系管理员");
	}
	
	public static R error(String msg) {
		return error(500, msg);
	}
	
	public static R error(int code, String msg) {
		R r = new R();
		r.put("code", code);
		r.put("msg", msg);
		return r;
	}

	public static R ok(String msg) {
		R r = new R();
		r.put("msg", msg);
		return r;
	}
	
	public static R ok(Map<String, Object> map) {
		R r = new R();
		r.putAll(map);
		return r;
	}
	
	public static R ok() {
		return new R();
	}

	public R put(String key, Object value) {
		super.put(key, value);
		return this;
	}
}

五、系统测试 

程序设计不能保证没有错误,这是一个开发过程,在程序运行的过程中是不可避免的,但我们不能使这些错误始终存在于系统中,错误可能会造成无法估量的后果,如系统崩溃,安全信息,系统无法正常启动等,为了避免这些问题,我们需要测试程序,并发现这些问题,并纠正它们,并使系统更长时间稳定成熟,本章的作用是发现这些问题,并对其进行修改,虽然耗时费力,但长期非常重要和必要系统的开发。

网上拍卖系统的实现,对于系统中功能模块的实现及操作都必须通过测试进行来评判系统是否可以准确的实现。在系统正式上传和使用之前必须做的一步就是系统测试,对于测试发现的错误及时修改处理,保证系统准确无误的供给用户使用。

在对网上拍卖系统平台进行测试的时候在找到问题的情况下必须在第一时间找到解决问题的办法,不要存在侥幸的心理,这样才能让网上拍卖系统管理系统开发的质量可以过关,并且开发的周期会大大缩短,还有就是在测试时,不要出现重复性的错误,遇到一个错误问题,要将整个网上拍卖系统平台开发所牵扯的该问题都必须一一解决,提高网上拍卖系统管理平台的安全性、稳定性。

白盒测试与黑盒测试是测试中比较常用的两种方法。

①结构测试俗称白盒测试:这种测试是在对程序的处理过程与结构都有详尽谅解的前提下,顺从程序内部的逻辑而完成的系统测试,以确定系统中所有的通路都能够遵照设计要求正常工作,不出现任何偏差。

②功能测试又成黑盒测试:主要是针对程序功能能够按照设计正常实现的一种检测,在程序接口处进行,检测程序手法数据是否正常,与外部信息的交换是否完整。

六、总结

此时项目已经完成,即使实施的时间不是很长,但是这个过程中需要准备很长的一段时间去对系统设计开发所实际到的技术进行学习。在学习的过程中,我逐渐认识得到了我自身存在的一些不足。对于一些控制是必要的应用技能,能够理解,整个过程中仅仅是一个掌握了常用的性能和控制方法。从系统的分析调查数据到系统的设计实现,整个过程经历了几个月,自己也努力了几个月,但是系统仍有很多不成熟的地方,在系统设计过程中有许多技术缺陷存在其中也涉及到了很多自己无法解决的问题,主要通过找专业的网站和论坛来解决这些问题,对于圆满完成我的毕业设计,他们也贡献了很大一部分力量。系统的开发环境和配置都是可以自行安装的,系统使用Java开发工具,使用比较成熟的Mysql数据库进行系统数据交互,根据技术语言对数据库,结合需求进行修改维护,可以使得系统运行更具有稳定性和安全性,从而完成实现系统的开发。

回顾毕业设计的整个过程,既付出汗水也收获了很多。虽然经历了各种各样的困难,自己的不断研究探索,系统的实现仍有不足之处。

在以后的学习及工作中,我仍然继续学习计算机方面的技术,让我在后期的平台开发中可以更好更快的实现需求功能。我相信我可以让更多的好工作,做出更大的贡献。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

基于SSM+Vue的网上拍卖系统 的相关文章

  • 如何将嵌套对象数组转换为 CSV?

    我有一个包含嵌套对象的数组 例如 name 1 children name 1 1 children 1 2 id 2 thing name 2 1 children 2 2 name 3 stuff name 3 1 children 3
  • Java 7 中新的 JNLP 缺少项目警告是怎么回事?

    从 Java 6 切换到 Java 7 后 我的 JNLP 仍然工作正常 但它现在抛出一系列如下错误 Missing Application Name manifest attribute for http blah com app jar
  • MongoDb Spring 在嵌套对象中查找

    我正在使用 Spring Data Mongodb 和这样的文档 id ObjectId 565c5ed433a140520cdedd7f attributes 565c5ed433a140520cdedd73 333563851 list
  • 使用 Firefox 插件发出跨域 ajax 请求

    我对如何在 Firefox 插件中发出跨域 ajax 请求感到有点困惑 LastPass 和 Xmarks 等插件建议你可以做到这一点 但是当我尝试用 google 搜索你是如何做到这一点时 每个人似乎都说你不能 除非用户在 Firefox
  • SQLite 64位整数在jooq中被识别为int

    我有一个与 jOOQ 一起使用的 SQLite 数据库 当我使用 jOOQ 的代码生成工具时 它会按预期构建所有表和记录类 然而 所有的 SQLiteINTEGER列变成java lang Integer生成的代码中的字段 问题是 SQLi
  • SVG 沿圆弧添加文本

    我正在尝试绘制 SVG 径向饼图 如下所述 色卡 https stackoverflow com a 18210763 1395178 现在我尝试将文本与圆弧一起添加到每个切片 我试图展示Text 1具有与 M 和 A 值完全相同的 x y
  • 如何使 JFileChooser 仅显示具有某些特定名称 Java 的文件夹

    有什么方法可以让 JFileChooser 加载时仅显示名称为 Hello 的文件夹 这是我的代码 它显示所有文件夹以及扩展名为 py 和 java 的文件 我想添加文件夹名称限制 FileNameExtensionFilter filte
  • 如何取消 ComponentWillUnmount 中的所有请求?

    根据docs https facebook github io react docs react component html componentwillunmount ComponentWillUnmount 能够取消请求 我有一个页面发
  • 当对话框打开时如何处理屏幕方向变化?

    我有一个 Android 应用程序 它已经在处理方向的更改 即有一个android configChanges orientation 在清单和onConfigurationChange 活动中的处理程序切换到适当的布局并准备它 我有一个横
  • Spring Boot - 如何在开发过程中禁用@Cacheable?

    我正在寻找两件事 如何在开发过程中使用 Spring boot dev 配置文件禁用所有缓存 application properties 中似乎没有通用设置可以将其全部关闭 最简单的方法是什么 如何禁用特定方法的缓存 我尝试像这样使用 S
  • 如何阻止 Eclipse 上的 JPA Facet 始终更新?

    我在 Eclipse 中有一个 EJB2 EJB3 Java 项目 我最近启用了 JPA Facet 现在安装了 Dali 并配置了对包含实际表和数据的 MySQL 数据库的访问 问题是 在 IDE Java 编辑器中编辑实体 bean 速
  • 如何在卡组bootstrap vue上设置行列?

    我的 vue 组件是这样的
  • 有没有办法避开 Google 路线中的特定道路或坐标?

    API 有一个航路点参数 以便 API 计算经过指定航路点的路线 有什么方法可以给出要避开的航路点而不是要经过的航路点 它 目前 尚未实施 有一个开放的功能请求 问题 214 影响方向的能力 例如 避免 路障 https code goog
  • jsch - 发送特殊键(CTRL-C、CTRL-D 等)

    我需要向远程终端发送特殊密钥 如何使用 JSCH 做到这一点 Thanks Walter 尝试发送两个字节 0x03 0x04 Check ASCII 表 http www bbdsoft com ascii html了解更多
  • Maven编译错误:包不存在

    我正在尝试向现有企业项目添加 Maven 支持 这是一个多模块项目 前 2 个模块编译和打包没有问题 但我面临编译错误 我尝试在多个模块中使用相同的依赖项 我的结构是 gt parent gt pom xml gt module 1 gt
  • 使用 System.out.println 显示特殊字符

    我在将带有特殊字符的文本从网络服务发送或显示到数据库时遇到问题 在我的 Eclipse 上 我已将字符编码设置为 UTF 8 但它仍然不允许我显示字符 例如 像下面的代码一样简单的打印 String test System out prin
  • 如何在 jest 中测试调用和应用函数?

    这是我的callnapply js file const callAndApply caller object method nameArg ageArg tShirtSizeArg method call object nameArg a
  • 如何为用户的活动设置计时器?

    如果用户在 5 小时内停止工作 我需要执行特定的方法 假设用户已登录 但他在 5 小时内没有向数据库的特定表添加任何记录 任何时候用户将记录添加到指定的表中 该特定用户的计时器都应该重置 否则它将继续运行 如果达到 5 小时 应用程序应显示
  • 将Json字符串映射到java中的map或hashmap字段

    假设我从服务器返回了以下 JSON 字符串 response imageInstances one id 1 url ONE two id 2 url TWO 杰克逊代码大厦 JsonProperty 我怎样才能得到HashMap对象出来了
  • Java GridBagConstraints gridx 和 gridy 不工作?

    我正在尝试使用gridx and gridy定位我的按钮的约束 但它们不起作用 如果我改变gridx and gridy变量 什么也没有发生 如果我将填充更改为GridBagConstraints to NONE 仍然不行 我在这里错过了什

随机推荐

  • TensorFlow:实战Google深度学习框架(六)图像数据处理

    第七章 图像数据处理 7 1 TFRecord输入数据格式 TensorFlow提供了一种统一的格式来存储数据 TFRecord格式 7 1 1 TFRecord格式介绍 7 1 2 TFRecord样例程序 7 2 图像数据处理 7 2
  • linux中shell中使用expect实现自动应答

    linux中shell中使用expect实现自动应答 expect有两种方式 一种是为了单纯的进行自动应答 还有一种是为了结合shell脚本 大多数情况下都是为了结合shell脚本 这里示例两种写法 但在使用时应该尽量使用结合shell方式
  • 杀毒软件 clamav 的安装和使用

    目录 一 clamAV介绍 二 安装ClamAV clamdscan 三 手动更新数据库 四 用法 4 1 clamscan用法 4 2 clamdscan用法 五 python判定有无检测出病毒 一 clamAV介绍 ClamAV 杀毒是
  • python入门基础-数据类型&有序序列和无序序列;

    目录 python优点 python缺点 python应用场景 Python数据类型 字符串 string 列表 list 元组 tuple 不可变数据 1 2 3 set 集合 1 2 3 无序 自动去重 dict字典 key value
  • 基于YOLO的3D人脸关键点检测方案

    目录 前言 一 任务列表 二 3D人脸关键点数据 H3WB 2 下载方法 3 任务 4 评估 5 使用许可 3DFAW AFLW2000 3D 三 3D关键点的Z维度信息 1 基于3DMM模型的方法 2 H3WB 四 当前SOTA的方法 1
  • STM32串口下载

    使用FlyMCU下载程序 1 上电前 设置BOOT0 1 BOOT1 0 或者是在上电后 设置BOOT0 1 BOOT1 0之后 然后按一下复位按键 从而通过串口下载程序 2 在MDK编译加载生成的hex文件 并勾选右边的编程前重装文件 这
  • Unity进阶 - 动画系统 - Animations选项卡

    Unity进阶 动画系统 Animations选项卡 相关文章阅读 Unity 进阶 动画系统 Mecanim动画系统 Unity进阶 动画系统 给人物角色制作动画 Unity进阶 动画系统 人形动画的导入 Unity进阶 动画系统 导入设
  • 中国移动笔试有感

    被3号的中国移动笔试给深深地虐了 以前被像阿里阿这样的大企业虐就没啥子感觉 笔试完依旧是嘻嘻哈哈 像恒生这样的企业 笔试对我来说还是比较容易的虽然面试被刷了 说明还是需要多读书啊 但是中国移动的笔试 真的深深的激起了我学习的动力 我也不知道
  • C语言_带参宏和函数的区别及各自优缺点

    前言 C语言中 要想解决某子问题 可以自定义一个函数来专门处理该问题 比如 我想比较两个数的大小 那么我可以地定义一个函数max来完成两个数求最大值功能 但是 C语言中我们也可以通过宏定义来定义一个求最值的函数MAX 然后通过使用带参宏来完
  • 善待自己:改变命运的N个人生哲理

    心灵的栅栏 人与月亮的距离并不遥远 因为人与人心灵间的距离更为遥远 王尔德 当玛格丽特的丈夫杰瑞因脑瘤去世后 她变得异常愤怒 生活太不公平 她憎恨孤独 孀居 年 她的脸变得紧绷绷的 一天 玛格丽特在小镇拥挤的路上开车 忽然发现一幢她喜欢的房
  • 《软件测试的艺术》读后感 Or 读书笔记

    软件测试的艺术 读后感 Or 读书笔记 第一章 一次自评价测试 第二章 软件测试的心理学和经济学 第三章 代码检查 走查与评审 第四章 测试用例的设计 第五章 模块 单元 测试 第六章 更高级别的测试 第七章 可用性 或用户体验 测试 第八
  • Java—类的加载概述

    1 1 类的加载概述 当程序要使用某个类时 如果该类还未被加载到内存中 则系统会通过加载 连接 初始化三步来实现对这个类进行初始化 1 加载 是将class文件读入内存 并为之创建一个Class对象 任何类被使用时系统都会建立一个Class
  • Docker中安装Gitlab详细全教程

    前言 一 安装Gitlab 1 搜索影像 2 下载影像 3 启动Git服务 4 查看Gitlab是否已经启动 二 配置Gitlab 1 首先 先进入容器 2 修改gitlab rb文件 3 修改gitlab rb文件中的IP与端口号 3 配
  • OpenCV——求直线交点

    您可以使用OpenCV中的cv Point和cv Vec4i数据类型来表示点和直线 然后使用cv intersect函数来计算两条直线的交点 下面是一个示例代码 其中line1和line2分别表示两条直线的起点和终点 cv Point li
  • 机器学习(11)——时间序列分析

    目录 1 时间序列数据的相关检验 1 1 白噪声检验 1 2 平稳性检验 1 3 自相关分析和偏自相关分析 2 移动平均算法 2 1 简单移动平均法 2 2 简单指数平滑法 2 3 霍尔特线性趋势法 2 4 Holt Winters 季节性
  • Centos7安装dig命令

    2019独角兽企业重金招聘Python工程师标准 gt gt gt Centos7安装dig命令 作者 jwj 时间 2018 10 17 分类 服务器 最近做一个项目 需要用到Gmail邮箱发送邮件 但发现发送不出去 排查问题时 需要用到
  • 最新SecureCRT 中文注册版

    SecureCRT是一款由VanDyke Software公司开发的终端仿真软件 它提供了类似于Telnet和SSH等协议的远程访问功能 SecureCRT专门为网络管理员 系统管理员和其他需要保密访问网络设备的用户设计 软件下载 Secu
  • filter IE滤镜(Internet Explorer)CSS

    http justcoding iteye com blog 940184 概述 CSS滤镜虽然只能在IE浏览器中表现出效果 但是仍不失为网页增加特效的好办法 1 CSS静态滤镜样式 filter CSS静态滤镜样式的使用方法 filter
  • PlatformIO基于ESP32S2的SPI软串口LCD屏调试

    文章目录 VSCode PlatformIO Arduino ESP32S2 SPI LCD 320 240 一 准备工作 二 测试 1 全屏检测 2 图形测试 参考资料 VSCode PlatformIO Arduino ESP32S2
  • 基于SSM+Vue的网上拍卖系统

    末尾获取源码 开发语言 Java Java开发工具 JDK1 8 后端框架 SSM 前端 采用Vue技术开发 数据库 MySQL5 7和Navicat管理工具结合 服务器 Tomcat8 5 开发软件 IDEA Eclipse 是否Mave