文件选择会话框JFileChooser 1:JFileChooser() 构造一个指向用户默认目录的 JFileChooser。c:\winnt为打开文件为对话框的默认路径 2:JFileChooser(File currentDirectory) 使用给定的 File 作为路径来构造一个 JFileChooser。 setFileSelectionMode(int mode) 设置 JFileChooser,以允许用户只选择文件、只选择目录,或者可选择文件和目录。 mode参数:FILES_AND_DIRECTORIES 指示显示文件和目录。 FILES_ONLY 指示仅显示文件。 DIRECTORIES_ONLY 指示仅显示目录。 3:showDialog(Component parent,String ap 继续阅读 >>


宗进 17/05/22 17:25:55
因为最近课设需要,所以就学习了一些,先总结一点 一.所要总结的知识点: 1.控件的正确摆放姿势. 2. java图形中常用的控件. 3.如何给JPanel,JLabel,JButton中添加背景图片 4.列表选择框JComboBox,JList 5.给面板或者控件设置炫酷边框 二.逐一介绍: 1. java图形中常用的控件 常用窗体:JFrame、JDialog。窗体好比一块空白的画布,你可以任意添加按钮等组件到其中,也可以设置窗体的属性(大小、边界、排布等)。JFrame是一个主窗体,在一个项目中只能有一个。而JDialog 窗体是Swing组件中的对话框,它继承了AWT组件中java.awt.Dialog类,弹出新窗体。有点像弹出对话框。 按钮:JButton 标签类:JLabel。JLabel 对象可以显示文本、图像或同时显示二者。可以通过设置垂直和水平对齐方式,指定标签显示区中标签内容在何处对齐。 构造方法介绍: JLabel() 创建无图像并且其 继续阅读 >>


宗进 17/05/22 12:41:58
https://vjudge.net/contest/65959#problem/L 题目大意 就是让你输入一个地图,‘#’代表空地, 用’@’代表油井, 让你找这片土地上的油田的个数,油田指的是,所有能从上下,左右,两条对角线相连的@,只要能连上中间不隔”#”, 就算是一个油田。 解题思路 DFS能简单些,对每一个油井,它都有八个方向,要你去查找,看是不是油井,如果是就继续对它进行判断,如果不是就结束递归。如果已经查明它是油井,就将它标记为空地。具体看代码。 代码 # include <stdio.h> # include <string.h> # define max 105 int dir[8][2] = { {1,0}, {-1,0}, {0,1}, {0,-1}, {1,-1}, {1,1}, {-1,1}, {-1,-1}}; char G[max][max]; //int num[max][max];//开始以为要用到 继续阅读 >>


宗进 17/03/07 21:59:53
https://vjudge.net/contest/65959#problem/M 题目大意 三个杯子,S, A, B分别代表它们的容量,S=A+B, 先给S这个杯子倒满水,A,B不倒水, 要求是利用三个杯子平分S里边的水,问如果可以求倒水的次数(三个杯子可以互相倒水) 解题思路 还是用BFS来做,三个杯子有6种倒法,难点就在于,如何倒水,以及最后判断是否平分,看了一个大神的做法,他是用数组的下标0,1,2来表示三个杯子,用它的值来表示杯子里的水量,这样只操作下标就可以操作杯子,具体看代码。 代码 # include <stdio.h> # include <queue> # include <string.h> using namespace std; #define max 105 struct node { int cpu[3];//用数组方便对容器进行操作 int step; }; int 继续阅读 >>


宗进 17/03/07 21:14:01
https://vjudge.net/contest/65959#problem/I 代码暂时有问题,所以暂时不要看 题目大意 一块地上面有草和空地,有两个人想要把草烧光,这样他俩就可以开心的OOXX,他俩都要在一块地上放火(每人只能放一次),可以在相同或者不同的位置放,火可以向四周蔓延,蔓延一次话费1分钟,问他俩把这块地上草烧完所用到的最小时间。 解题思路 这个思路是我看一个大神的,感觉很好,就是将两人所能放火的位置都试一遍,比较得出所用最短的时间,具体用的是一个结构体数组将所有有草的位置全都记录下来,然后对它两两进行所有组合进行BFS。求出它们各自所花费的时间。 代码 # include<stdio.h> # include <queue> # include <string.h> using namespace std; # define max 11 struct node { int x, y, 继续阅读 >>


宗进 17/03/06 20:50:25
https://vjudge.net/contest/65959#problem/H 题目大意 输入两个容器的容量A,B,一开始让两个容器为空,然后给你对这两个容器的6种操作, 让你用这6种操作最终使得A或B容器里的水最终达到C,让你输出需要倒水的次数,以及从一开始到后来得到结果的路径。(要求C的大小在A和B之间) 解题思路 还是BFS和DFS两者相结合,唯一的亮点就是最后输出路径是字符串,这样在定义结构体的时候要多加一个变量,用来作为路径数组的下标。 代码 # include<stdio.h> # include <queue> # include <string.h> using namespace std; # define max 110 int A,B,C; char num[12][12] = {"FILL(1)","FILL(2)", "DROP(1)","DROP(2)","POUR(1,2)","POUR(2 继续阅读 >>


宗进 17/03/06 20:25:36
题目大意 输入两堆牌str1,str2, 将两堆牌交叉重叠为一副牌str, 交叉规则是str2最底部的牌先放,然后是str1最底部的牌放在刚才放的牌的上面,直到两副牌放完。然后再从str的最底部开始到str1长度的牌直接当成str1, 从这个位置到最顶部赋给str2;直到找到和一开始输入的牌相等的str,找出要执行几次这个过程。 解题思路 这个题要用到map,利用它键值对应,以及当查找时,键所对应的值出现重复时,就说明找不到。 代码 # include <cstdio> # include <map> # include <string> # include <cstring> using namespace std; int main(void) { int k, i, sum ,n,m, j; char str[666], str1[333], str2[333], s[666]; map<str 继续阅读 >>


宗进 17/03/05 13:46:07
https://vjudge.net/contest/65959#problem/K 题目大意 定义一个二维数组: int maze[5][5] = { 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, }; 它表示一个迷宫,其中的1表示墙壁,0表示可以走的路,只能横着走或竖着走,不能斜着走,要求编程序找出从左上角到右下角的最短路线。 Input 一个5 × 5的二维数组,表示一个迷宫。数据保证有唯一解。 Output 左上角到右下角的最短路径,格式如样例所示。 Sample Input 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 1 1 0 0 0 0 1 0 Sample Output (0, 0) (1, 0) (2, 0) (2, 1) (2, 2) (2, 3) (2, 4) (3, 4) 继续阅读 >>


宗进 17/03/05 13:01:21
https://vjudge.net/contest/65959#problem/F 题目大意 在1000到10000的范围内,输入两个数,a,b。 b>a,现在要让你把a变成b。改变a四位数中的任何一位之后如果它为素数,就以他为基准继续变,直到它变成B(以素数为台阶)。 思路 BFS思想,逐一由千位变到个位,每一位由1变到9,没变一次,比对这个数是不是素数,如果是就将它保存到队列中,循环里每次处理的都是上一个数,这才是广搜的核心。再使用一个一维数组,用变化后的素数表示下标,用它对应的值来表示所要进行的步数。 先将1000到10000的所有素数都求出来保存到一个一维数组中(下标对应值为1),下标不是素数值为0. 代码 # include <stdio.h> # include <queue> # include <math.h> # include <cstring> # include <stri 继续阅读 >>


宗进 17/03/04 13:03:41
https://vjudge.net/contest/65959#problem/E 题目大意 输入一个整数,输出一个能整除它的数,这个数很特别,它只包含0和1。 思路 1:只含有0,1的数可以这样求得,利用1,给它乘以10,给它乘以10后加1.每次对一它进行这两种操作 2:有两种方法,第一种DFS,用递归来做,终止递归的判别条件是,当这个数的长度超过19时,强制跳出当前的这条路,换一条路走。缺点是一条道走到黑,错过了中途好多的风景。另一种方法是BFS,利用循环和队列来做,因为是广搜,所以可以从前往后一步一步的判断。 DFS的代码 # include <stdio.h> int m, flag; void DFS(int x, long long y) { if(x >19 || flag ==1)//flag是用来保证当找到这个数时可以,终止这条路, { return; } if 继续阅读 >>


宗进 17/03/04 12:15:09