⑴ 求一個,java圖形化界面的源碼
自己寫的石頭剪子布代碼,有圖形界面,可以把自己選中的圖片命名為.jpg放到工程目錄下做背景圖片。//////////////////////////// package HomeWork;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.io.*;
import java.util.*;
public class StoneShearsSack { /**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
new StoneWindow("Sample Game");
}
}
final class StoneWindow extends JFrame implements ActionListener,ItemListener{
JLabel win,draw,lose,score,count;
JTextArea text;
JComboBox list;
JButton fight,clear;
int swin,sdraw,slose,sscore;
JPanel panel1 = new JPanel();
JPanel panel2 = new JPanel();
String str1,str2,str3;
Random rdm = new Random();
int flag,random ,flag1, count1;
//final ImageIcon con = new ImageIcon("a.jpg") ;
public StoneWindow(String s){
setTitle("Sample Game");
fight = new JButton("出招");
clear = new JButton("清除分數");
//final ImageIcon con = new ImageIcon("b.jpg") ;
text = new JTextArea(){
final ImageIcon con = new ImageIcon("a.jpg");
Image mg = con.getImage();
{setOpaque(false);}
public void paintComponent(Graphics g){
g.drawImage(mg, 0, 0, this);
super.paintComponent(g);
}
};
text.setForeground(Color.black);
Font f = new Font("華文行楷",Font.BOLD,50);
text.setFont(f);
list = new JComboBox();
list.addItem("石頭");
list.addItem("剪子");
list.addItem("布");
panel2.setBackground(Color.blue);
panel2.add(list);
panel2.add(fight);
panel2.add(clear);
panel2.setPreferredSize(new Dimension(900,50));
list.addItemListener(this);
fight.addActionListener(this);
clear.addActionListener(this);
win = new JLabel("贏:" + swin);
draw = new JLabel(" 和:" + sdraw);
lose = new JLabel(" 輸:" + slose);
score = new JLabel(" 得分:" + sscore);
count = new JLabel(" 總局:" + count1);
Font f1 = new Font("宋體",1,30);
win.setFont(f1);
draw.setFont(f1);
lose.setFont(f1);
score.setFont(f1);
count.setFont(f1);
win.setForeground(Color.cyan);
draw.setForeground(Color.green);
lose.setForeground(Color.blue);
score.setForeground(Color.black);
count.setForeground(Color.pink);
panel1.setBackground(Color.red);
panel1.add(win);
panel1.add(draw);
panel1.add(lose);
panel1.add(score);
panel1.add(count);
panel1.setPreferredSize(new Dimension(900,50));
add(panel1,BorderLayout.NORTH);
add(text,BorderLayout.CENTER);
add(panel2,BorderLayout.SOUTH);
setBounds(100,100,900,450);
validate();
setVisible(true);
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
}
public void actionPerformed(ActionEvent e){
if(e.getSource() == fight){
if(list.getSelectedItem() == "石頭"){
flag = 0;
}
else if(list.getSelectedItem() == "剪子"){
flag = 1;
}
else if(list.getSelectedItem() == "布"){
flag = 2;
}
str1 = (String)list.getSelectedItem();
text.setText("");
text.append("\n");
text.append(" 你 出: " + str1 + "\n");
text.append(" 電腦出: " + this.random() + "\n");
text.append(" 結 果: " + this.result() + "\n");
this.finalresult();
}
if(e.getSource() == clear){
swin = 0;
sdraw = 0;
slose = 0;
sscore = 0;
count1 = 0;
text.setText("");
win.setText(" 贏:" + swin);
draw.setText(" 和:" + sdraw);
lose.setText(" 輸:" + slose);
score.setText(" 得分:" + sscore);
count.setText(" 總局:" + count1);
}
}
public String random(){
random = rdm.nextInt(3);
if(random == 0)
str2 = "石頭";
else if(random == 1)
str2 = "剪子";
else if(random == 2)
str2 = "布";
return str2;
}
public String result(){
if(random == flag){
str3 ="打平";
flag1 = 0;
}
else if(random < flag &&flag == 1){
str3 = "你輸了";
flag1 = 1;
}
else if(random <flag && random ==1){
str3 = "你輸了";
flag1 = 1;
}
else if(random ==2 && flag == 0){
str3 = "你輸了";
flag1 = 1;
}
else{
str3 = "你贏了";
flag1 = 2;
}
return str3;
}
public void finalresult(){
if(flag1 == 0){
sdraw ++;
draw.setText(" 平:" + sdraw);
score.setText(" 得分:" + sscore);
}
if(flag1 == 1){
slose ++;
sscore = sscore - 10;
lose.setText(" 輸:" + slose);
score.setText(" 得分:" + sscore);
}
if(flag1 == 2) {
swin ++;
sscore = sscore + 10;
win.setText(" 贏:" + swin);
score.setText(" 得分:" + sscore);
}
count1 = swin + slose + sdraw;
count.setText(" 總局:" + count1);
}
public void itemStateChanged(ItemEvent e){
}
}
⑵ 如何在Eclipse中配置OpenCV開發環境
其實opencv對圖片的開發更多的是使用c++、python、和matlab。用Java語言的還是很少的。現在對我用Java的eclipse來實現的開發環境做一個小結。
我下載的是opencv-2.4.10。
1、首先我們需要安裝opencv,安裝的過程其實就是一個解壓縮的過程。我的安裝目錄是 D:\Program Files (x86)\opencv
裡面有兩個文件夾,我們主要用到build文件夾里的東西,一會稍後詳細再說用到哪些東西。
2.我們需要在eclipse裡面創建一個Java工程。Java工程創建完之後我們需要為它配置jar包。
步驟:
選定工程右鍵--build path--configure build path
找到我們安裝opencv的目錄下的build文件夾里,有一個Java文件,進入Java文件夾,你會看到一個opencv-2140.jar的jar包,選中它,進行添加。
然後你需要點開剛才應用的jar包,再選中native library location 選擇edit 編輯,找到
D:\Program Files (x86)\opencv\opencv\build\x64
這里注意,不同的系統有不同的選擇哦。注意如果是64位操作系統,這里要選擇x64,如果是32位操作系統就選x86,選錯了回報做的。
小編這里是64位的win7,所以選的是x64
接下來就是點擊確定,那麼我們的環境算是配置完成。
現在在工程里建立一個類測試一下我們的環境是否正常運行。
代碼如下
package opencv_test;
import org.opencv.core.Core;
import org.opencv.core.CvType;
import org.opencv.core.Mat;
import org.opencv.core.MatOfKeyPoint;
import org.opencv.features2d.DescriptorExtractor;
import org.opencv.features2d.FeatureDetector;
public class test {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
System.loadLibrary("opencv_java2410");
Mat m = Mat.eye(3, 3, CvType.CV_8UC1);
System.out.println("m = " + m.mp());
}
}
輸出結果:
。
最後在添加一個讀取圖片的小示例
System.loadLibrary( Core.NATIVE_LIBRARY_NAME );
Mat test_mat = Highgui.imread("F:/rgbd_dataset_freiburg1_360/pcd/1305031790.645155.pcd");
Mat test_mat = Highgui.imread("C:/Users/Administrator/Desktop/2]TOH]6F75N5ZR5YTW4Y}{Q.jpg");
System.out.println(test_mat.mp());
⑶ springboot下載文件到本地目錄
SpringBoot項目引入本地Jar包1、一,搭建一個本地maven源,仍然通過maven管理。這種方法的缺點是,一旦工程需要多人維護,每人都需要搭一個本地源,比較麻煩,除非公司有公用的內部maven源,否則這種方案反而增加工作量。
2、一般情況下java項目引入第三方的jar包,在項目下新建lib,把jar包放進入,引入即可使用。但是在Springboot的項目,直接進行打包會出現引用的類找不到的情況。
3、解決方法如下:項目下面有pom.xml文件,要在pom文件下添加這個${basedir}的意思是本地路徑添加以上代碼後即可。還有就是,在別的服務下面的子pom.xml也要添加以上代碼,但不同的是,要看好路徑。
4、由於SpringBoot內置了tomcat,所以將SpringBoot項目直接打成jar包,可以直接在cmd裡面運行。打包選中項目後,打開MavenProjects視圖,如下圖:然後運行package,將項目重新打包。當日誌出現:說明打包成功。
SpringBoot配置文件存放位置以及讀取順序
1、idea中,為了我們本地方便開發測試,我們在此處創建一個config目錄,然後把application.properties放進去,項目正常運行。jar包會自動生成在target目錄下。
2、SpringBoot系統啟動時默認會讀取的配置文件,支持propertiesyml格式。也就是說,會先載入application.properties,根據spring.profile.active的設置載入相應的application-XX.properties配置,然後按優先順序合並配置文件。
3、使用springboot的方式,此種方式jar需要放到前面格式例如以jar包發布springboot項目時,默認會先使用jar包同級目錄下的application.properties來作為項目配置文件。
4、application.properties中:server.port=8001,application.yml中:server.port=8888。問題:springboot是否都載入這兩個配置文件?如果兩個文件有相同的key,取哪一個文件的value?都載入,且按properties→yml的順序載入。
5、springboot配置文件支持靈活的路徑,以及靈活的文件名,用一個變數表達式總結如下:部分源碼如下:當滿足上述變數表達式的配置文件有多個時,會有一個配置的優先順序。
【SpringBoot】MultipartFile存本地文件SpringBoot將在類路徑中或從ServletContext的根目錄中提供名為/static(或/public或/resources或/META-INF/resources)的目錄中的靜態內容。
idea中,為了我們本地方便開發測試,我們在此處創建一個config目錄,然後把application.properties放進去,項目正常運行。jar包會自動生成在target目錄下。
newFile()中的地址就隨便你想放在那裡就放在那裡,接下來就想辦法訪問就好了。
springboot日誌配置:名稱只要是一logback開頭就行,測試使用log.xml並不會生成日誌。
配置文件SpringBoot使用一個全局的配置文件application.propertiesapplication.yml配置文件的作用:修改SpringBoot自動配置的默認值,SpringBoot在底層都給我們自動配置好。
我們現在在用的SpringCache,可以直接看SpringBoot提供的緩存枚舉類,有如下這些:EhCache:一個純Java的進程內緩存框架,所以也是基於本地緩存的。(注意EhCachex和EhCachex相互不兼容)。
SpringBoot目錄結構選擇SpringInitializr填寫你的maven項目的groupId和artifact等項目基本信息之後,在依賴中選擇Web--Web之後finish。目錄結構如下:直接運行DemoApplication.java就可以運行項目了。
先看一下最終的目錄結構:這里我們使用了Thymeleaf模板引擎來獲得後台傳來的數據並解析,使用bootstrap框架顯示數據。可以看到,Thymeleaf的用法和jsp還是有點像的。可以直接通過${}的形式來獲得attribute中的數據。
例如,imges目錄下的demo.jpg在HTML/JSP中訪問是的路徑就是,因為SpringBoot的預設工作目錄就是src/main/java,當訪問資源時,就是src/main/resources,而/static/**被SPRINGBOOT被映射到了classpath:/static下。
默認情況下,springBoot從classpath下一個叫/static(/public,/resources或/META-INF/resources)的文件夾或從ServletContext根目錄提供靜態內容。