JavaFX基础学习之URLConnection
2024-08-25 10:08:28
一个标准的JavaFX文件包含三个部分:主类 、 控制类、 界面设计(XML+CSS)
1,main.java
package application; import javafx.application.Application; import javafx.fxml.FXMLLoader; import javafx.stage.Stage; import javafx.scene.Parent; import javafx.scene.Scene; public class Main extends Application { @Override public void start(Stage primaryStage) { try { Parent root = FXMLLoader.load(getClass().getResource("main.fxml")); Scene scene = new Scene(root); scene.getStylesheets().add(getClass().getResource("application.css").toExternalForm()); primaryStage.setScene(scene); primaryStage.setTitle("the key to the kingdom"); primaryStage.show(); } catch(Exception e) { e.printStackTrace(); } } public static void main(String[] args) { launch(args); } }
2,Conntroller.java
package application; import java.io.BufferedInputStream; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.Reader; import java.net.MalformedURLException; import java.net.URL; import java.net.URLConnection; import java.util.ResourceBundle; import javafx.event.ActionEvent; import javafx.fxml.FXML; import javafx.fxml.Initializable; import javafx.scene.control.Button; import javafx.scene.control.TextArea; import javafx.scene.control.TextField; public class Controller implements Initializable{ @FXML private TextArea textarea; @FXML private TextField textfield; @FXML private Button button; @FXML private void handleButtonAction(ActionEvent event) { try { String corpid = "TEST"; String corpsecret = "TEST"; URL url = new URL("https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid="+corpid+"&corpsecret="+corpsecret); URLConnection uc = url.openConnection(); InputStream raw = uc.getInputStream(); InputStream buffer = new BufferedInputStream(raw); Reader r = new InputStreamReader(buffer); int c; StringBuffer body = new StringBuffer(); while ((c = r.read()) != -1){ body.append((char)c); } String key = body.substring(17, 81); String xuehao = textfield.getText(); URL url2 = new URL("https://qyapi.weixin.qq.com/cgi-bin/user/get?access_token="+key+"&userid="+xuehao); URLConnection uc2 = url2.openConnection(); InputStream in = uc2.getInputStream(); in = new BufferedInputStream(in); Reader r2 = new InputStreamReader(in); int i; StringBuffer body2 = new StringBuffer(); while ((i = r2.read()) != -1){ body2.append((char)i); } textarea.appendText(body2.toString()+"\n"); } catch (MalformedURLException ex) { } catch (IOException ex) { } } @Override public void initialize(URL arg0, ResourceBundle arg1) { // TODO Auto-generated method stub } }
3,main.fxml
<?xml version="1.0" encoding="UTF-8"?> <?import java.lang.*?> <?import java.util.*?> <?import javafx.scene.*?> <?import javafx.scene.control.*?> <?import javafx.scene.layout.*?> <AnchorPane id="AnchorPane" prefHeight="420.0" prefWidth="378.0" xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1" fx:controller="application.Controller"> <children> <Button fx:id="button" layoutX="264.0" layoutY="20.0" onAction="#handleButtonAction" text="一键获取" /> <TextField fx:id="textfield" layoutX="97.0" layoutY="20.0" prefHeight="23.0" prefWidth="157.0" /> <TextArea fx:id="textarea" layoutX="7.0" layoutY="51.0" prefHeight="362.0" prefWidth="364.0" wrapText="true" /> <Label layoutX="23.0" layoutY="20.0" prefHeight="23.0" prefWidth="91.0" text="请输入学号:" /> </children> </AnchorPane>
4,application.css
最新文章
- 【分布式】Zookeeper的Leader选举
- Tomcat服务器本地的搭建,以及在 IDEA软件下的配置,以及项目的测试运行(基于supermvc框架下的web)
- asp.net 修改/删除站内目录操作后会导致Session丢失
- Sublime Text 3快捷键
- MHA自动Failover过程解析(updated) 转
- hadoop集群环境的搭建
- Stack-overflow, how to answer
- JQuery自定义插件详解之Banner图滚动插件
- Flask從入門到入土(四)——登錄實現
- 【NOIP2016】换教室
- 如何测量并报告ASP.NET Core Web API请求的响应时间
- shop++改造之ResponseEntity的坑
- 876. Middle of the Linked List
- RabbmitMQ-工作队列及相关概念
- leetcode-algorithms-25 Reverse Nodes in k-Group
- Codeforces Beta Round #81 A Transmigration
- openwrt lamp
- Linux远程上传、下载文件的方法
- Python爬虫教程-04-response简介
- 2.Windows服务-->;安装卸载服务
热门文章
- 设计模式——(Abstract Factory)抽象工厂
- OpenCV3.0.0+win10 64位+vs2015环境的下载,安装,配置
- TCP/IP capture/analysis tools in Unix/Linux
- create OpenVPN on ubuntu12.04
- POSIX多线程——基本线程管理函数介绍
- 在egret中使用protobuf
- C语言之if和switch的分别
- 背水一战 Windows 10 (39) - 控件(布局类): VariableSizedWrapGrid, Border, Viewbox, SplitView
- Extjs的GridPanel分页前后台完整代码实例
- openui5中的RESTful实现odata协议