189 8069 5689

天气预报java程序代码 天气预报java程序代码

大家好 我刚才在写java天气预报 我用json解析的数据怎样放到java界面?

可以在JFrame中添加几个Label控件或其他文本控件用来展示解析出来的结果

创新互联坚持“要么做到,要么别承诺”的工作理念,服务领域包括:成都网站建设、成都做网站、企业官网、英文网站、手机端网站、网站推广等服务,满足客户于互联网时代的安远网站设计、移动媒体设计的需求,帮助企业找到有效的互联网解决方案。努力成为您成熟可靠的网络建设合作伙伴!

java调天气预报

①取出地址中的返回值(getWeatherReader方法)

②解析json格式的字符串

③形成你要展示的天气预报效果

public static String getWeatherReader() {//取得接口字符串

String currentLine = "";

String strReturn = "";

URL url = null;

HttpURLConnection conn = null;

InputStream in = null;

BufferedReader buff = null;

try {

url = new URL("");

System.out.println(url.toURI());

//打开地址链接

conn = (HttpURLConnection)url.openConnection();

conn.connect();

//接收数据

in = conn.getInputStream();

//如有乱码注意编码方式,如:UTF-8

buff = new BufferedReader(new InputStreamReader(in, "gb2312"));

while((currentLine = buff.readLine()) != null) {

strReturn += currentLine;

}

} catch (Exception e) {

e.printStackTrace();

} finally {

try {

in.close();

buff.close();

} catch (IOException e) {

return "8EF0000";

}

}

return strReturn;

}

java调用天气预报api怎么写

//通过中国天气api调用

private String getWeatherInfo2(){

StringBuilder info = new StringBuilder();

try {

DefaultHttpClient httpclient = new DefaultHttpClient();

HttpGet httget = new HttpGet("");

ResponseHandlerString responseHandler = new BasicResponseHandler();

String responseBody = httpclient.execute(httget, responseHandler);

System.out.println(responseBody);

JsonParser jp = new JsonParser();

JsonElement jse = jp.parse(responseBody);

JsonObject jso = jse.getAsJsonObject().get("weatherinfo").getAsJsonObject();

// String updTime = jso.get("fchh").getAsString();

// if(updTime != null){

// //温度

// String j = jso.get("temp1").getAsString();//今天

// String m = jso.get("temp2").getAsString();//明天

// //天气情况

// String j_weather = jso.get("weather1").getAsString();//今天

// String m_weather = jso.get("weather2").getAsString();//明天

// //风向风力

// String j_wind = jso.get("wind1").getAsString();//今天

// String m_wind = jso.get("wind2").getAsString();//明天

// info.append("今天:").append(j).append(" ").append(j_weather).append(" ").append(j_wind).append("\n");

// info.append("明天:").append(m).append(" ").append(m_weather).append(" ").append(m_wind).append("\n");

// }

String updTime = jso.get("fchh").getAsString();

if(updTime != null){

if(!updTime.trim().equals("18")){

//温度

String j = jso.get("temp1").getAsString();//今天

String m = jso.get("temp2").getAsString();//明天

//天气情况

String j_weather = jso.get("weather1").getAsString();//今天

String m_weather = jso.get("weather2").getAsString();//明天

//风向风力

String j_wind = jso.get("wind1").getAsString();//今天

String m_wind = jso.get("wind2").getAsString();//明天

info.append("今天:").append(j).append(" ").append(j_weather).append(" ").append(j_wind).append("\n");

info.append("明天:").append(m).append(" ").append(m_weather).append(" ").append(m_wind).append("\n");

}else{

//18

//温度

String temp1 = jso.get("temp1").getAsString();//今天

String temp2 = jso.get("temp2").getAsString();//今天

String temp3 = jso.get("temp3").getAsString();//今天

String j = temp1.split("~")[1] + "~" + temp2.split("~")[0];

String m = temp2.split("~")[1] + "~" + temp3.split("~")[0];//明天

//天气情况

String weather1 = jso.get("weather1").getAsString();

String weather2 = jso.get("weather2").getAsString();

String weather3 = jso.get("weather3").getAsString();

String j_weather = "";

String j_weather_part1 = "";

String j_weather_part2 = "";

//判断是否有转

if(weather1.indexOf("转") 0){

//有

j_weather_part1 = weather1.split("转")[1];

}else{

j_weather_part1 = weather1;

}

if(weather2.indexOf("转") 0){

//有

j_weather_part2 = weather2.split("转")[0];

}else{

j_weather_part2 = weather2;

}

if(j_weather_part1.equalsIgnoreCase(j_weather_part2)){

j_weather = j_weather_part1;//今天

}else{

j_weather = j_weather_part1 + "转" + j_weather_part2;//今天

}

String m_weather = "";

String m_weather_part1 = "";

String m_weather_part2 = "";

//判断是否有转

if(weather2.indexOf("转") 0){

//有

m_weather_part1 = weather2.split("转")[1];

}else{

m_weather_part1 = weather2;

}

if(weather3.indexOf("转") 0){

//有

m_weather_part2 = weather3.split("转")[0];

}else{

m_weather_part2 = weather3;

}

if(m_weather_part1.equalsIgnoreCase(m_weather_part2)){

m_weather = m_weather_part1;//今天

}else{

m_weather = m_weather_part1 + "转" + m_weather_part2;//明天

}

//风向风力

String j_wind = jso.get("wind2").getAsString();//今天

String m_wind = jso.get("wind3").getAsString();//明天

info.append("今天:").append(j).append(" ").append(j_weather).append(" ").append(j_wind).append("\n");

info.append("明天:").append(m).append(" ").append(m_weather).append(" ").append(m_wind).append("\n");

}

}

} catch (Exception e) {

}

return info.toString();

}

求Android天气预报的开发源代码

package com.nrzc.weatherstation;

import android.content.Context;

import android.hardware.Sensor;

import android.hardware.SensorEvent;

import android.hardware.SensorEventListener;

import android.hardware.SensorManager;

import android.os.Bundle;

import android.support.v7.app.AppCompatActivity;

import android.widget.TextView;

import java.util.Timer;

import java.util.TimerTask;

/**

* 环境传感器

* 气象站

*/

public class MainActivity extends AppCompatActivity {

private SensorManager sensorManager;

private TextView temperatureTextView;

private TextView pressureTextView;

private TextView lightTextView;

private float currentTemperature=Float.NaN;

private float currentPressure=Float.NaN;

private float currentLight=Float.NaN;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

init();

Timer updateTimer=new Timer("weatherUpdate");

updateTimer.scheduleAtFixedRate(new TimerTask() {

@Override

public void run() {

updateGUI();

}

},0,1000);

}

private void init(){

temperatureTextView=(TextView)findViewById(R.id.temperature);

pressureTextView=(TextView)findViewById(R.id.pressure);

lightTextView=(TextView)findViewById(R.id.light);

sensorManager=(SensorManager)getSystemService(Context.SENSOR_SERVICE);

}

private final SensorEventListener tempSensorEventListener=new SensorEventListener() {

@Override

public void onSensorChanged(SensorEvent event) {

currentTemperature=event.values[0];

}

@Override

public void onAccuracyChanged(Sensor sensor, int accuracy) {

}

};

private final SensorEventListener pressureSensorEventListener=new SensorEventListener() {

@Override

public void onSensorChanged(SensorEvent event) {

currentPressure=event.values[0];

}

@Override

public void onAccuracyChanged(Sensor sensor, int accuracy) {

}

};

private final SensorEventListener lightSensorEventListener=new SensorEventListener() {

@Override

public void onSensorChanged(SensorEvent event) {

currentLight=event.values[0];

}

@Override

public void onAccuracyChanged(Sensor sensor, int accuracy) {

}

};

@Override

protected void onResume() {

super.onResume();

Sensor lightSensor=sensorManager.getDefaultSensor(Sensor.TYPE_LIGHT);

if (lightSensor!=null)

sensorManager.registerListener(lightSensorEventListener,

lightSensor,

SensorManager.SENSOR_DELAY_NORMAL);

else

lightTextView.setText("Light Sensor Unavailable");

Sensor pressureSensor=sensorManager.getDefaultSensor(Sensor.TYPE_PRESSURE);

if (pressureSensor!=null)

sensorManager.registerListener(pressureSensorEventListener,

pressureSensor,SensorManager.SENSOR_DELAY_NORMAL);

else

pressureTextView.setText("Barometer Unavailable");

Sensor temperatureSensor=sensorManager.getDefaultSensor(Sensor.TYPE_AMBIENT_TEMPERATURE);

if (temperatureSensor!=null)

sensorManager.registerListener(tempSensorEventListener,

temperatureSensor,

SensorManager.SENSOR_DELAY_NORMAL);

else

temperatureTextView.setText("Thermometer Unavailable");

}

@Override

protected void onPause() {

sensorManager.unregisterListener(pressureSensorEventListener);

sensorManager.unregisterListener(tempSensorEventListener);

sensorManager.unregisterListener(lightSensorEventListener);

super.onPause();

}

private void updateGUI(){

runOnUiThread(new Runnable() {

@Override

public void run() {

if(!Float.isNaN(currentPressure)){

pressureTextView.setText(currentPressure+"hPa");

pressureTextView.invalidate();

}

if (!Float.isNaN(currentLight)){

String lightStr="Sunny";

if (currentLight=SensorManager.LIGHT_CLOUDY)

lightStr="night";

else if (currentLight=SensorManager.LIGHT_OVERCAST)

lightStr="Cloudy";

else if (currentLight=SensorManager.LIGHT_SUNLIGHT)

lightStr="Overcast";

lightTextView.setText(lightStr);

lightTextView.invalidate();

}

if (!Float.isNaN(currentTemperature)){

temperatureTextView.setText(currentTemperature+"C");

temperatureTextView.invalidate();

}

}

});

}

}

java web service实现天气预报功能

前台js界面代码:

//省份

function LoadProvince() {

$.ajax({

type: "POST",

url: "ashx/weatherHandler.ashx",

data: "option=province",

success: function (result) {

$(".sel-province option").remove();

var arry = result.split('|');

var obj = null;

for (var i = 0; i  arry.length; i++) {

if (arry[i] != null  arry[i] != "") {

obj = arry[i].split(',');

$(".sel-province").append("option value='" + obj[1] + "'" + obj[0] + "/option");

}

}

$(".sel-province").find("option[text='北京']").attr("selected", "selected");

},

error: function (errorMsg) {

$(".result-table tr").remove();

$(".result-table").append("trtd省份请求出现错误,请您稍后重试。。。/td/tr");

}

});

}

//城市

function LoadCity(provinceid) {   

$.ajax({

type: "POST",

url: "ashx/weatherHandler.ashx",

data: "provinceid=" + provinceid + "option=city",

success: function (result) {

$(".sel-city option").remove();

var arry = result.split('|');

var obj = null;

for (var i = 0; i  arry.length; i++) {

if (arry[i] != null  arry[i] != "") {

obj = arry[i].split(',');

$(".sel-city").append("option value='" + obj[1] + "'" + obj[0] + "/option");

}

}

},

error: function (errorMsg) {

$(".result-table tr").remove();

$(".result-table").append("trtd城市请求出现错误,请您稍后重试。。。/td/tr");

}

});

}

//加载天气

function GetWeather(cityid) {

$.ajax({

type: "POST",

url: "ashx/weatherHandler.ashx",

data: "cityid=" + cityid + "option=weather",

success: function (result) {

$(".result-table tr").remove();

var arry = result.split('|');

var obj = null;

for (var i = 0; i  arry.length; i++) {

if (arry[i] != null  arry[i] != "") {

if (arry[i].indexOf(".gif")  0) {

$(".result-table").append("trtdimage src='images/" + arry[i] + "'//td/tr");

}

else {

$(".result-table").append("trtd" + arry[i] + "/td/tr");

}

}

}

},

error: function (errorMsg) {

$(".result-table tr").remove();

$(".result-table").append("trtd天气数据请求出现错误,请您稍后重试。。。/td/tr");

}

});

}

html代码:

body

form id="form1" runat="server"

div class="head-div"

table

tr

td

select class="sel-province sel"

/select

/td

td

select class="sel-city sel"

/select

/td

td

input type="button" class="btn-search" value="查询" /

/td

/tr

/table

/div

div class="result-div"

table class="result-table"

/table

/div

/form

/body

由于js不支持跨域,直接ajax+ashx一般处理程序(在里面调用天气接口)。一般处理程序代码如下:

using System.Web;

using System;

using System.Collections.Generic;

using System.Linq;

using System.Web;

using System.Text;

namespace WeatherTest.ashx

{

/// summary

/// weatherHandler 的摘要说明

/// /summary

public class weatherHandler : IHttpHandler

{

WeatherWsClient.WeatherWSSoapClient client = new WeatherWsClient.WeatherWSSoapClient();

public void ProcessRequest(HttpContext context)

{

context.Response.ContentType = "text/plain";

string[] result = null;

string option = context.Request.Form["option"];

switch (option)

{

case "province":

result = GetProvinces();

break;

case "city":

result = GetCitys(context.Request.Form["provinceid"]);

break;

case "weather":

result = GetWeather(context.Request.Form["cityid"], null);

break;

}

string str = ConvertToString(result, option);

context.Response.Write(str);

}

/// summary

/// 数组转字符串

/// /summary

/// param name="result"/param

/// param name="option"/param

/// returns/returns

private string ConvertToString(string[] result, string option)

{

StringBuilder sb = new StringBuilder();

foreach (string item in result)

{

sb.Append(item+"|");

}

return sb.ToString();

}

/// summary

/// 省份

/// /summary

/// returns/returns

private string[] GetProvinces()

{

return client.getRegionProvince();

}

/// summary

/// 城市

/// /summary

/// param name="provinceid"/param

/// returns/returns

private string[] GetCitys(string provinceid)

{

return client.getSupportCityString(provinceid);

}

/// summary

/// 天气数据

/// /summary

/// param name="cityid"/param

/// param name="userid"/param

/// returns/returns

private string[] GetWeather(string cityid, string userid)

{

return client.getWeather(cityid, userid);

}

public bool IsReusable

{

get

{

return false;

}

}

}

}


标题名称:天气预报java程序代码 天气预报java程序代码
转载来源:http://cdxtjz.cn/article/hposid.html

其他资讯