HI我..
公司主營(yíng)業(yè)務(wù):網(wǎng)站制作、成都網(wǎng)站制作、移動(dòng)網(wǎng)站開(kāi)發(fā)等業(yè)務(wù)。幫助企業(yè)客戶真正實(shí)現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競(jìng)爭(zhēng)能力。創(chuàng)新互聯(lián)建站是一支青春激揚(yáng)、勤奮敬業(yè)、活力青春激揚(yáng)、勤奮敬業(yè)、活力澎湃、和諧高效的團(tuán)隊(duì)。公司秉承以“開(kāi)放、自由、嚴(yán)謹(jǐn)、自律”為核心的企業(yè)文化,感謝他們對(duì)我們的高要求,感謝他們從不同領(lǐng)域給我們帶來(lái)的挑戰(zhàn),讓我們激情的團(tuán)隊(duì)有機(jī)會(huì)用頭腦與智慧不斷的給客戶帶來(lái)驚喜。創(chuàng)新互聯(lián)建站推出章丘免費(fèi)做網(wǎng)站回饋大家。
通過(guò)構(gòu)造方法就可以把那個(gè)引用傳過(guò)去了。。
如果你是在一個(gè)窗口干什么后打開(kāi)另一個(gè)窗口的。。就是說(shuō)你在一個(gè)窗口中打開(kāi)另一個(gè)窗口的。。
TextFrame 類 這里面有個(gè)文本框和一個(gè)按鈕。。點(diǎn)擊按鈕就打開(kāi)另一個(gè)窗口。。
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("點(diǎn)擊");
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 類。。這里面有個(gè)按鈕。點(diǎn)擊就可以設(shè)置這邊這個(gè)文本框的內(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("點(diǎn)擊設(shè)置");
jb.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
String str = JOptionPane.showInputDialog("請(qǐng)輸入", 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);
}
}
如果兩個(gè)類都是單獨(dú)運(yùn)行的。。沒(méi)有任何關(guān)系的話(即不是在一個(gè)窗口中點(diǎn)擊上面東西或是干什么就打開(kāi)另一個(gè)窗口)。。都是獨(dú)立運(yùn)行的。。
那就需要用到socket了哦。。
下面兩個(gè)類你都單獨(dú)運(yùn)行就是了哈。。
服務(wù)器端:SocketManager類。這里面有個(gè)文本框。。
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ù)器進(jìn)程
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類 有個(gè)按鈕。。點(diǎn)擊彈出輸入框輸入內(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("點(diǎn)擊設(shè)置");
jb.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
String str = JOptionPane.showInputDialog("請(qǐng)輸入", 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項(xiàng)目中新建一個(gè)類。然后在調(diào)用類中先進(jìn)行被調(diào)用類實(shí)例化,然后通過(guò)實(shí)例化的對(duì)象訪問(wèn)。
2、在Java項(xiàng)目中新建一個(gè)類,將該類中需要被調(diào)用的方法設(shè)置為靜態(tài)(static),加了static后,就可以用類名直接調(diào)用。然后在調(diào)用類中直接通過(guò)類名進(jìn)行訪問(wèn)。3、這樣就可以讓Java項(xiàng)目另一個(gè)類中的代碼跟這個(gè)類里面的代碼一起執(zhí)行了。
spring中利用mvc框架就可以實(shí)現(xiàn)jsp和java交互了。
以下用spring mvc輸出hello world為例來(lái)說(shuō)明:
一、項(xiàng)目依賴的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ù)制過(guò)去了);
把以上的jar包全部復(fù)制到項(xiàng)目的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文件配置:
在項(xiàng)目中新建一個(gè)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)前請(qǐng)求為“/”時(shí),則轉(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)上面要訪問(wèn)的靜態(tài)資源不包括在上面的配置中時(shí),則根據(jù)此配置來(lái)訪問(wèn) --
mvc:default-servlet-handler/
!-- 開(kāi)啟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/?開(kāi)啟注解映射支持,它是為了簡(jiǎn)化配置的縮寫形式,它相當(dāng)于以下2個(gè)配置:
bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping"/
bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter"/
由于我們?cè)趙eb.xml文件里面配置的是攔截所有的請(qǐng)求到該servlet,所以我們?cè)谶@里要對(duì)靜態(tài)資源文件映射作一下配置,否則請(qǐng)求這些資源文件會(huì)返回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)上面要訪問(wèn)的靜態(tài)資源不包括在上面的配置中時(shí),則根據(jù)此配置來(lái)訪問(wèn) --
mvc:default-servlet-handler/
開(kāi)啟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,在項(xiàng)目中新建一個(gè)web的Source Folder文件夾,并在文件夾下面添加com.demo.web.controllers包,在包中添加一個(gè)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所映射的請(qǐng)求。
方法上的@RequestMapping 注解指定該方法為一個(gè)action,value 值指定該action所映射的請(qǐng)求,method 中的RequestMethod.GET指定該action只接受get請(qǐng)求。
ModelAndView 中的setViewName指定了該action所對(duì)應(yīng)的視圖名稱,解析視圖時(shí)會(huì)在springservlet-config.xml文件指定的視圖文件夾中尋找對(duì)應(yīng)的視圖。
添加視圖,在項(xiàng)目/WEB-INF文件夾下新建一個(gè)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
運(yùn)行項(xiàng)目輸出結(jié)果:
有。貪吃蛇自行編輯java代碼使其具有交互功能是可以的。實(shí)現(xiàn)貪吃蛇游戲基本功能,屏幕上隨機(jī)出現(xiàn)一個(gè)“食物”,稱為豆子。玩家能利用上下左右鍵控制“蛇”的移動(dòng),“蛇”吃到“豆子”后“蛇”身體加長(zhǎng)一節(jié),得分增加,“蛇”碰到邊界或蛇頭與蛇身相撞,“蛇”死亡,游戲結(jié)束。
名稱欄目:java代碼之間交互 javascript java交互
分享URL:http://www.rwnh.cn/article40/dogipeo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站策劃、自適應(yīng)網(wǎng)站、搜索引擎優(yōu)化、商城網(wǎng)站、企業(yè)網(wǎng)站制作、營(yíng)銷型網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)