p1

窗口实训

[亡魂溺海] 提交于 2020-04-07 07:24:38
1.计算器 package Demo; import java.awt.BorderLayout; import java.awt.GridLayout; import javax.swing.; public class Calucate { JFrame f; JPanel p; JTextField t; JButton b[]=new JButton[16]; GridLayout g1; public Calucate(){ f = new JFrame ("计算器"); g1= new GridLayout(4,4); p = new JPanel(); p.setLayout(g1); t = new JTextField(); b[0] = new JButton("7"); b[1] = new JButton("8"); b[2] = new JButton("9"); b[3] = new JButton("/"); b[4] = new JButton("4"); b[5] = new JButton("5"); b[6] = new JButton("6"); b[7] = new JButton(""); b[8] = new JButton("1"); b[9] = new JButton("2"); b[10] = new JButton("3");

[web] 理解和使用Promise.all和Promise.race

一曲冷凌霜 提交于 2020-03-30 18:56:00
转载自: https://www.jianshu.com/p/7e60fc1be1b2 一、Pomise.all的使用 Promise.all可以将多个Promise实例包装成一个新的Promise实例。同时,成功和失败的返回值是不同的,成功的时候返回的是一个结果数组,而失败的时候则返回最先被reject失败状态的值。 具体代码如下: let p1 = new Promise((resolve, reject) => { resolve('成功了') }) let p2 = new Promise((resolve, reject) => { resolve('success') }) let p3 = Promse.reject('失败') Promise.all([p1, p2]).then((result) => { console.log(result) //['成功了', 'success'] }).catch((error) => { console.log(error) }) Promise.all([p1,p3,p2]).then((result) => { console.log(result) }).catch((error) => { console.log(error) // 失败了,打出 '失败' }) Promse.all在处理多个异步处理时非常有用

js自定义类几种方式

丶灬走出姿态 提交于 2020-03-27 05:19:20
1、工厂方式 <script type="text/javascript"> function createObject(name){ var p = new Object(); p.name=name; p.say = function(){alert(p.name+'ff');} return p; } var p1 = createObject("p1"); var p2 = createObject("p2"); alert(p1.name+" "+p2.name); p1.say();p2.say(); alert(p1.say==p2.say); //false </script> 问题:每创建一个对象,对象的方法是新对象,浪费资源 2、构造函数方式 <script type="text/javascript"> function Person(name){ this.name = name; this.say = function(){ alert("I am "+this.name); } } var p1 = new Person("wang"); var p2 = new Person("li"); p1.say(); p2.say(); alert(p1.say==p2.say); //false </script> 问题: 创建对象时比工厂方法更易于理解。

事件、监听、jQuery、轮播手动

时光总嘲笑我的痴心妄想 提交于 2020-03-19 08:05:06
a链接事件阻止默认行为 return false HTML元素大都包含了自己的默认行为,例如:超链接、提交按钮等。我们可以通过在绑定事件中加上return false来阻止它的默认行为。 通用性的事件监听方法 1.绑定HTML元素属性 <input type="button" value="clickMe" onClick="check(this)"> 2 绑定dom对象属性 document.getElementById("btn1").onClick=test; //test函数名 两种添加事件方式 1. function show(){ alert("你点击了我"); 2.document.getElementById("mytest1").onclick=show; //+()是调用,不+是参数 function show(){ aler t("你点击了我"); } //页面加载完成后调用 window.onload=function(){ /*第二种添加事件方式*/ document.getElementById("mytest1").onclick=show; } 标准DOM事件监听方法 [object].addEventListener(“事件类型”,”处理函数”,”冒泡事件或捕获事件”); var bt1=document.getElementById(

平面最近点距离问题(分治法)

大憨熊 提交于 2020-03-15 10:11:12
算法: 0:把所有的点按照横坐标排序 1:用一条竖直的线L将所有的点分成两等份 2:递归算出左半部分的最近两点距离d1,右半部分的最近两点距离d2,取d=min(d1,d2) 3:算出“一个在左半部分,另一个在右半部分”这样的点对的最短距离d3。 4:结果=min(d1,d2,d3) 关键就是这第3步。貌似这需要n^2的时间,把左边每个点和右边每个点都对比一下。其实不然。秘密就在这里。 首先,两边的点,与分割线L的距离超过d的,都可以扔掉了。 其次,即使两个点P1,P2(不妨令P1在左边,P2在右边)与分割线L的距离(水平距离)都小于d,如果它们的纵坐标之差大于d,也没戏。 就是这两点使得搜索范围大大减小: 对于左半部分的,与L的距离在d之内的,每个P1来说:右半部分内,符合以上两个条件的点P2最多只有6个! 原因就是: d是两个半平面各自内,任意两点的最小距离,因此在同一个半平面内,任何两点距离都不可能超过d。 我们又要求P1和P2的水平距离不能超过d,垂直距离也不能超过d,在这个d*2d的小方块内,最多只能放下6个距离不小于d的点。 因此,第3步总的比较距离的次数不超过n*6。 第3步的具体做法是: 3.1 删除所有到L的距离大于d的点。 O(n) 3.2 把右半平面的点按照纵坐标y排序。 O(nlogn) 3.3 对于左半平面内的每个点P1

python基础教程:Python实现动态给类和对象添加属性和方法操作示例

夙愿已清 提交于 2020-03-10 01:36:24
本文实例讲述了Python实现动态给类和对象添加属性和方法操作。分享给大家供大家参考,具体如下: 动态给类和对象添加属性 定义一个Person类 class Person ( object ) : def __init__ ( self, name ) : self.name = name 给对象添加属性 # 创建2个Person,分别为p1,p2 p1 = Person ( 'amy' ) print ( p1.name ) p1.age = 10 # 给p1对象添加属性 print ( p1.age ) # 输出10 p2 = Person ( 'anne' ) print ( p2.name ) p2.age = 18 # 给p2对象添加属性 print ( p2.age ) # 输出18 运行结果: amy 10 anne 18 给类添加属性 p1 = Person ( 'amy' ) p2 = Person ( 'anne' ) Person.sex = 'female' print ( p1.sex ) # 输出 female print ( p2.sex ) # 输出 female p2.sex = 'male' print ( p2.sex ) # 输出 male 运行结果: female female male 动态给类和对象添加方法 动态给类添加方法 #

BZOJ.4552.[HEOI2016/TJOI2016]排序(线段树合并/二分 线段树)

与世无争的帅哥 提交于 2020-03-09 20:08:47
题目链接 对于序列上每一段连续区间的数我们都可以动态开点建一棵值域线段树。初始时就是 \(n\) 棵。 对于每次操作,我们可以将 \([l,r]\) 的数分别从之前它所属的若干段区间中分离出来,合并。 对于升序与降序,只需要维护一个标记,若为降序,则给左区间大的那部分。 具体实现还要用set存下每棵线段树维护的区间左端点,便于快速查找包含 \([l,r]\) 的区间;对每个区间维护其右端点便于快速得到区间大小。 时间、空间复杂度都是 \(O((n+m)\log n)\) 。 但是在洛谷上要么RE要么MLE。。其它OJ上还是能过的。 Another Solution: 对于询问二分一个值,将所有数根据与这个值的大小关系设为0/1。模拟每次操作,就是将一段区间的0/1分别放在两边。用线段树维护区间和、区间覆盖即可。最后判断是否仅p之前全是0, 线段树合并做法: //57628kb 1692ms #include <set> #include <cstdio> #include <cctype> #include <algorithm> //#define gc() getchar() #define MAXIN 150000 #define gc() (SS==TT&&(TT=(SS=IN)+fread(IN,1,MAXIN,stdin),SS==TT)?EOF:*SS++)

jdk8新特性Stream

ε祈祈猫儿з 提交于 2020-02-29 20:01:01
Stream的方法描述与实例 1,filter 过滤 Person p1 = new Person(); p1.setName("P1"); p1.setAge(10); Person p2 = new Person(); p2.setName("pp2"); p2.setAge(9); Person p3 = new Person(); p3.setName("p3"); p3.setAge(5); List<Person> list = new ArrayList<>(); list.add(p1); list.add(p2);//若最后不添加collect方法,则返回类型是stream list = list.stream().filter(person -> person.getAge()>5).collect(Collectors.toList()); System.out.println(list); 输出结果: [Person{name='P1', age=10}, Person{name='pp2', age=9}] 2,map List<String> list = Stream.of("a","b","wo").map(string -> string.toUpperCase()).collect(Collectors.toList()); System.out

jQuery代码节选(筛选)

人盡茶涼 提交于 2020-02-26 05:07:28
筛选 ... 8.not() <p class="p1">1</p> <p class="p2">2</p> <p class="p3">3</p> console.log($("p").not($('.p1'))); 从获取的p元素集合中除去拥有 class='p1' 9.slice() <p class="p1">1</p> <p class="p2">2</p> <p class="p3">3</p> console.log($("p").slice(0,1)); console.log($("p").slice(0,-2)); 10.children() <div> <p class="p1">1</p> </div> <div> <p class="p2">2</p> </div> <p class="p3">3</p> console.log($("div").children('.p1')); console.log($("div").children()); 11.closest() <div class="father"> <div class="children"> 我是div <p >我是孙子p</p> </div> <p>我是儿子p</p> </div> <p>我是兄弟p</p> console.log($(".father p").closest("div

sv copy

别等时光非礼了梦想. 提交于 2020-02-22 14:42:35
1. 使用new操作符复制一个对象 1 class Header; 2 int id; 3 function new (int id); 4 this.id = id; 5 endfunction 6 7 function showId(); 8 $display ("id=0x%0d", id); 9 endfunction 10 endclass 11 12 class Packet; 13 int addr; 14 int data; 15 Header hdr; 16 17 function new (int addr, int data, int id); 18 hdr = new (id); 19 this.addr = addr; 20 this.data = data; 21 endfunction 22 23 function display (string name); 24 $display ("[%s] addr=0x%0h data=0x%0h id=%0d", name, addr, data, hdr.id); 25 endfunction 26 endclass 27 28 module tb; 29 Packet p1, p2; 30 initial begin 31 // Create a new pkt object called p1 32