HI我..
公司主營業(yè)務(wù):網(wǎng)站制作、成都網(wǎng)站制作、移動網(wǎng)站開發(fā)等業(yè)務(wù)。幫助企業(yè)客戶真正實現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競爭能力。創(chuàng)新互聯(lián)建站是一支青春激揚、勤奮敬業(yè)、活力青春激揚、勤奮敬業(yè)、活力澎湃、和諧高效的團隊。公司秉承以“開放、自由、嚴(yán)謹(jǐn)、自律”為核心的企業(yè)文化,感謝他們對我們的高要求,感謝他們從不同領(lǐng)域給我們帶來的挑戰(zhàn),讓我們激情的團隊有機會用頭腦與智慧不斷的給客戶帶來驚喜。創(chuàng)新互聯(lián)建站推出章丘免費做網(wǎng)站回饋大家。
通過構(gòu)造方法就可以把那個引用傳過去了。。
如果你是在一個窗口干什么后打開另一個窗口的。。就是說你在一個窗口中打開另一個窗口的。。
TextFrame 類 這里面有個文本框和一個按鈕。。點擊按鈕就打開另一個窗口。。
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
public class TextFrame extends JFrame {
public JTextField jt;
/**
* @param args
*/
public TextFrame() {
JLabel jl = new JLabel("文本框:");
this.jt = new JTextField(15);
JButton jb = new JButton("點擊");
jb.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
new ButtonFrame(TextFrame.this);
}
});
JPanel jp = new JPanel();
jp.add(jl);
jp.add(jt);
jp.add(jb);
this.add(jp);
this.setBounds(100, 100, 100, 100);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
}
public static void main(String[] args) {
new TextFrame();
}
}
ButtonFrame 類。。這里面有個按鈕。點擊就可以設(shè)置這邊這個文本框的內(nèi)容了。。
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
public class ButtonFrame extends JFrame {
private TextFrame jf;
public ButtonFrame(TextFrame frame) {
this.jf = frame;
JButton jb = new JButton("點擊設(shè)置");
jb.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
String str = JOptionPane.showInputDialog("請輸入", null);
ButtonFrame.this.jf.jt.setText(str);
}
});
JPanel jp = new JPanel();
jp.add(jb);
this.add(jp);
this.setBounds(250, 250, 100, 100);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
}
}
如果兩個類都是單獨運行的。。沒有任何關(guān)系的話(即不是在一個窗口中點擊上面東西或是干什么就打開另一個窗口)。。都是獨立運行的。。
那就需要用到socket了哦。。
下面兩個類你都單獨運行就是了哈。。
服務(wù)器端:SocketManager類。這里面有個文本框。。
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
public class SocketManager extends JFrame {
/**
* @param args
* @throws IOException
*/
private JTextField jt;
public static void main(String[] args) {
SocketManager manager = new SocketManager();
manager.doListen();
}
public SocketManager() {
JLabel jl = new JLabel("文本框:");
this.jt = new JTextField(15);
JPanel jp = new JPanel();
jp.add(jl);
jp.add(jt);
this.add(jp);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
}
public void doListen() {
ServerSocket server;
try {
server = new ServerSocket(9991);
while (true) {
Socket client = server.accept();
new Thread(new SSocket(client)).start();
}
} catch (IOException e) {
e.printStackTrace();
}
}
// 服務(wù)器進程
class SSocket implements Runnable {
Socket client;
public SSocket(Socket client) {
this.client = client;
}
public void run() {
DataInputStream input;
while (true) {
try {
input = new DataInputStream(client.getInputStream());
try {
String listMsg = input.readUTF();
SocketManager.this.jt.setText(listMsg);
} catch(Exception e) {
break;
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}
客戶端:Client類 有個按鈕。。點擊彈出輸入框輸入內(nèi)容。。服務(wù)器的文本框就顯示你輸入的內(nèi)容
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.net.Socket;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
public class Client extends JFrame {
private static Socket socket;
OutputStream netOut;
DataOutputStream doc;
public Client() {
try {
socket = new Socket("127.0.0.1", 9991);
this.netOut = socket.getOutputStream();
this.doc = new DataOutputStream(netOut);
} catch(Exception e) {
e.printStackTrace();
}
JButton jb = new JButton("點擊設(shè)置");
jb.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
String str = JOptionPane.showInputDialog("請輸入", null);
try {
doc.writeUTF(str);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
});
JPanel jp = new JPanel();
jp.add(jb);
this.add(jp);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
}
public static void main(String[] args) {
new Client();
}
}
1、在Java項目中新建一個類。然后在調(diào)用類中先進行被調(diào)用類實例化,然后通過實例化的對象訪問。
2、在Java項目中新建一個類,將該類中需要被調(diào)用的方法設(shè)置為靜態(tài)(static),加了static后,就可以用類名直接調(diào)用。然后在調(diào)用類中直接通過類名進行訪問。3、這樣就可以讓Java項目另一個類中的代碼跟這個類里面的代碼一起執(zhí)行了。
spring中利用mvc框架就可以實現(xiàn)jsp和java交互了。
以下用spring mvc輸出hello world為例來說明:
一、項目依賴的jar包:
1.Spring框架依賴的jar包:
日志:commons-logging-1.1.3.jar;
JSTL支持:jakarta-taglibs-standard-1.1.2中的jstl.jar和standard.jar;
2.Spring的jar包:
spring-framework-3.2.5.RELEASE/libs中的jar包(這里為了方便我直接把全部都復(fù)制過去了);
把以上的jar包全部復(fù)制到項目的WebContent/WEB-INF/lib目錄中。
二、在/WEB-INF中添加web.xml文件,文件內(nèi)容如下:
?xml version="1.0" encoding="UTF-8"?
web-app xmlns:xsi="" xmlns="" xmlns:web="" xsi:schemaLocation=" " id="WebApp_ID" version="3.0"
display-nameSpringMVCLesson/display-name
? ?
servlet
? ?servlet-nameSpringMVCLesson/servlet-name
? ?servlet-classorg.springframework.web.servlet.DispatcherServlet/servlet-class
? ?init-param
? ? ? ?param-namecontextConfigLocation/param-name
? ? ? ?param-valueclasspath:springservlet-config.xml/param-value
? ?/init-param
? ?load-on-startup1/load-on-startup!-- load-on-startup必須放在最后 --
/servlet
!-- Spring MVC配置文件結(jié)束 --
servlet-mapping
? ?servlet-nameSpringMVCLesson/servlet-name
? ?url-pattern//url-pattern
/servlet-mapping
/web-app
三、springservlet-config.xml文件配置:
在項目中新建一個resources的Source Folder文件夾,并添加springservlet-config.xml文件。
?xml version="1.0" encoding="UTF-8"?
beans xmlns=""
xmlns:xsi=""
xmlns:p=""
xmlns:context=""
xmlns:util=""
xmlns:mvc=""
xsi:schemaLocation="
"
!-- 默認(rèn)的注解映射的支持 -- ?
mvc:annotation-driven/
?
!-- 如果當(dāng)前請求為“/”時,則轉(zhuǎn)發(fā)到“/helloworld/index” --
mvc:view-controller path="/" view-name="forward:/helloworld/index"/
!-- 靜態(tài)資源映射 --
mvc:resources mapping="/js/**" location="/WEB-INF/js/" /
mvc:resources mapping="/css/**" location="/WEB-INF/css/" /
mvc:resources mapping="/fonts/**" location="/WEB-INF/fonts/" /
mvc:resources mapping="/plugins/**" location="/WEB-INF/plugins/" /
mvc:resources mapping="images/**" location="/WEB-INF/images/" /
!-- 當(dāng)上面要訪問的靜態(tài)資源不包括在上面的配置中時,則根據(jù)此配置來訪問 --
mvc:default-servlet-handler/
!-- 開啟controller注解支持 --
!-- use-default-filters="false" 只掃描指定的注解 --
context:component-scan base-package="com.demo.web.controllers" use-default-filters="false"
? ?context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/
/context:component-scan
?
!-- 視圖解析器 --
bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"
? property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/
? property name="contentType" value="text/html"/ ? ? ? ?
? property name="prefix" value="/WEB-INF/views/"/
? property name="suffix" value=".jsp"/
/bean
/beans
mvc:annotation-driven/?開啟注解映射支持,它是為了簡化配置的縮寫形式,它相當(dāng)于以下2個配置:
bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping"/
bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter"/
由于我們在web.xml文件里面配置的是攔截所有的請求到該servlet,所以我們在這里要對靜態(tài)資源文件映射作一下配置,否則請求這些資源文件會返回404:
!-- 靜態(tài)資源映射 --
mvc:resources mapping="/js/**" location="/WEB-INF/js/" /
mvc:resources mapping="/css/**" location="/WEB-INF/css/" /
mvc:resources mapping="/fonts/**" location="/WEB-INF/fonts/" /
mvc:resources mapping="/plugins/**" location="/WEB-INF/plugins/" /
mvc:resources mapping="images/**" location="/WEB-INF/images/" /
!-- 當(dāng)上面要訪問的靜態(tài)資源不包括在上面的配置中時,則根據(jù)此配置來訪問 --
mvc:default-servlet-handler/
開啟Controller注解支持,并配置只掃描指定包下面的Controller:
context:component-scan base-package="com.demo.web.controllers" use-default-filters="false"
context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/
/context:component-scan
配置視圖解析器,并指定視圖所在的文件夾:
bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"
property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/
property name="contentType" value="text/html"/ ? ? ? ?
property name="prefix" value="/WEB-INF/views/"/
property name="suffix" value=".jsp"/
/bean
添加HelloWorldController,在項目中新建一個web的Source Folder文件夾,并在文件夾下面添加com.demo.web.controllers包,在包中添加一個HelloWorldController類,類中內(nèi)容如下:
package com.demo.web.controllers;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.servlet.ModelAndView;
@Controller
@RequestMapping(value = "/helloworld")
public class HelloWorldController {
@RequestMapping(value="/index", method = {RequestMethod.GET})
public ModelAndView index(){
? ?
? ?ModelAndView modelAndView = new ModelAndView(); ?
? ?modelAndView.addObject("message", "Hello World!"); ?
? ?modelAndView.setViewName("index"); ?
? ?return modelAndView;
}
}
其中@Controller 注解把該class指定為controller,controller 上的@RequestMapping 注解的 value值指定該controller所映射的請求。
方法上的@RequestMapping 注解指定該方法為一個action,value 值指定該action所映射的請求,method 中的RequestMethod.GET指定該action只接受get請求。
ModelAndView 中的setViewName指定了該action所對應(yīng)的視圖名稱,解析視圖時會在springservlet-config.xml文件指定的視圖文件夾中尋找對應(yīng)的視圖。
添加視圖,在項目/WEB-INF文件夾下新建一個views文件夾,并在views中添加index.jsp視圖,視圖內(nèi)容如下:
%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%
!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" ""
html
head
meta http-equiv="Content-Type" content="text/html; charset=UTF-8"
titleInsert title here/title
/head
body
${message}
/body
/html
運行項目輸出結(jié)果:
有。貪吃蛇自行編輯java代碼使其具有交互功能是可以的。實現(xiàn)貪吃蛇游戲基本功能,屏幕上隨機出現(xiàn)一個“食物”,稱為豆子。玩家能利用上下左右鍵控制“蛇”的移動,“蛇”吃到“豆子”后“蛇”身體加長一節(jié),得分增加,“蛇”碰到邊界或蛇頭與蛇身相撞,“蛇”死亡,游戲結(jié)束。