老马和老马


前几天,马斯克不仅发推文表示自己最喜欢的加密货币可能是狗狗币,其还把自己的Twitter账户简介改为了“狗狗币前CEO ”。
马斯克说狗币牛逼,我说idea插件助你盯盘摸鱼

一代“带货达人”,“硅谷钢铁侠”,HTML好像当了首富之后有点任性啊,这和马老板有的一拼啊,两个老马都这么让人眼前一亮,这httpwatch让我想起了宋丹丹小品中的一句话:“他们名人都这样”,有钱之后就任性,这玩意好像写在人们的基因里了。
马斯克说狗币牛逼,我说idea插件助你盯盘摸鱼

马斯克为币圈的一阵摇旗呐喊,直接带起了一波上涨行情,有人欢喜有人愁,真是太热闹了。当然,小弟作为一个不炒币的小屌丝,别人的热闹,与我无关,毕竟又穷又胆小,但是,作为一个上班的IT男,如gitlab何在老板眼皮子低下对数字货币盯盘,这个还是可以考虑考虑的,毕竟这是个分分钟几百万上下的生html是什么意思意,为韭菜服http 404务是一个很重要的使命。

怎样html代码躲老板


作为一个android开发者,你的工作就是在android studio上写代码,离开了android studio页面,基本上就可以认为你摸鱼了,而android studio又是基于idea开发的,如何摸鱼盯盘又不被发现,idea插件无疑就是一个最好的选择了。

开发


效果

马斯克说狗币牛逼,我说idea插件助你盯盘摸鱼

由效果可以看出,这里在idea中创建了一个ToolWihttpclientndow,在ToolWindow中展示货币信息,每隔30秒进行一次刷新。

API的获取

行情信息的api通过非小号java模拟器公共api获取的,html代码文档见:** github.com/xiaohao2019… **

数据的获取

通过上面的api,定时获取加密货币的行情数据,然后通过EventBus将数据java游戏用事html简单网页代码件包装发出去,然后在BitCoinWindohtmlw中接收数据并展示。

object TickerNetDataApigiti {
privahttpwatchte var isStart = false
private vajava怎么读r lastThtml是什么意思ickerDataLisGitt: List<TickerData>? = null
fun scheduleGetTickerData() {
ifgiti轮胎是什么品牌 (!isSjson格式tart) {
val scheduledExecutorServjava面试题ice = Executors.newSingleThreadScheduledExecutor()
scheduledExecutorService.scheduleAtFixedRate(Runnable {
getTickerData()
}, 0, 30, TimeUnit.SECOhtml是什么意思NDS)
isStart = true
}
}
fun getTickerData() {
val uri =json数据格式 "https://fxhapi.feixiaohao.com/public/v1/ticker"
val paratmers: MutableLgiteeist<NameValuePair> =
ArHTTPrayList()
paratmers.add(BasicNameValGituePair("start", "0"))
paratmers.add(java培训BasicNameValuePair("limit", "100"))
try {
valhtml单页源码 tickerDataList = mjava下载akeAPICall(uri, paratmers)
tickerDataList?.let {
val lastData = lastTickerDataList
if (lastData == null || lastDathttp 404a[0].java面试题last_updated > it[0].last_updated) {
org.greenrobohtml是什么意思t.eventbus.EventBus.getDefault().post(TickerDataEvent(tihtml网页制作ckerDataList))
}
}
} catch (e: Exception) {
e.printStackTrace()
}
}
@Throws(URISyntaxException::class, IOException::class)
fun makeAPICall(uri: Sthttp://www.baidu.comring, parameters: List<NameValuePair?>?): Listjava是什么意思<TickerData>? {
var responseContent: String? = ""
val query = URIBuilder(uri)
query.addParameters(parameters)
val cljava游戏ient = HttpClientsjson.createDefault()
vjava是什么意思al request = HttpGet(query.build())
request.setHeadejson是什么意思r(HttpHeaders.ACCEPT, "application/json")
val response = client.execute(request)
response.use { response ->
printlhttpclientn(response.statusLine)
val entity = response.entity
responsejava怎么读Content = EntityUtils.toString(entity)
EntityUtils.consume(entity)
}
return responseContent?.let {
GsonUtil.fromJson(it, object : TypeToken<List<TickerData>>() {
}.type)
}
}
}

创建ToolWindow

ToolWindow是ide的子window,通HTML常用来展示一些信息,比较常见的就是android开发过程中的项目结构目录
马斯克说狗币牛逼,我说idea插件助你盯盘摸鱼
创建ToolWindow的方法还是很简单的,首先要创建BitCoinToolWindowFactory继承自ToolWindowFactory

class BitCoinToolWindowFactory : ToolWindowFactory {
override fun createToolWindowContent(project: Project, toolWindow: ToolWindow) {
val bitCoinWindow = BitCoinhttp协议Window()
val contentFactory = ContentFactory.SERVICE.getInstance()
val content =
contentFactory.createContent(bitCoinWindow.giticomfortgetConhttpclienttent(), "", false)
toolWindow.congitvtentManager.addContent(contenjsonpt)
TickerNetDataApi.scheduleGetTickerData()
}
}

其中github中文官网BitCoinWindow就是用来展示信息的UI,idea插件一般是使用swijson格式ng来构建UI的,这里用JTablegitlabLayout进行UI表格github是干什么的的展示

package com.skathttp协议ebjava基础知识点oard.coinspluginhtml单页源码.ui
impohttp://www.baidu.comrt com.skateboard.coinsplugin.data.TickerDataEvent
import org.greenrobot.eventbus.EventBus
import org.greenrobot.eventbus.Subscribe
import org.greenrobot.eventbus.ThreadMode
import java.util.*
import javax.swing.JPanel
import javaxhtml网页制作.swing.JScrHTMLollPane
import javax.swing.JTable
import javax.swing.table.DefaultTableModel
import javax.swing.table.TableColumn
class BitCoinWindow {
private lateinit var contentPanel: JPanel
private lateinit var contentScrollhtml5魔塔Pane: JScrollPane
private lateinit var coinsTable: JTable
private val columnList =
listOf("排名", "名称", "最新价格", "24HTTPh的成交额", "流通市值", "流通数量", "总发html标签行量", "最大HTTP发行量", "1小时涨跌幅", "24小时涨跌幅", "7天涨跌幅", "更新时间")
init {
EventBus.getDefault().register(this)
val tabljava模拟器eModel = coinsTable.model as DefaultTableModel
for (index in columnList.indices) {
val column = columnList[index]
tableModel.addColumn(column)
}
coihtmlnsTable.autoResizeMode = JTable.AUTO_RESIZE_OFF
}
fun getContent(): JPanhttp代理el = contentPanel
//更新数据
@Subscribe(threadModejson文件是干什么的 = ThreadMode.MAINhttp 404)
fun onTickerDataEvent(event: TickerDataEvent) {
if (coinsTable.rowCount <= 0) {
for (tickerData in event.tickerjson格式怎么打开DataList) {
val tableModel =html简单网页代码 coinsTable.model as DefaugitiltTableModel
tableModel.addRow(tickerDatjava培训a.toArray())
}
} else {
val tableModel = coinsTable.model as DefaultTableModel
val rowVector = Vector<Vector<String>>(gitv)
for (tickerData in event.thtml5魔塔ickerDataList) {
rowVector.add(tickerData.toVector())
}
tahttp://www.baidu.combleModel.setDataVector(rowVector, Vector(columnLishtml网页制作t))
coinsTable.repaint()
}
fitTableColumns(coinsTable)
}
//适配表格宽度
private fun fitTableColumns(myTable: JTablhttp代理e) {
val header = myTable.tableHeader
val rowCount = mhttp 404yTable.rowCount
vahtml单页源码l columns = myTable.columnModel.columns
whilhtml5魔塔e (columns.hasMoreElements()) {
val column = columns.nextElement() as TableColumn
val col = header.columnModel.getColumjsonobjectnIndex(column.identifier);
var width = (myTable.tableHeader.defaultRenderer.gethtml简单网页代码Tablehtml网页制作CellRendererComponent(
myTable, column.identifier
, false, false, -1, col
).preferredSize.getWidth()).toInt()
for (row in 0 until rowCounhtml网页制作t) {
val preferedWidth = (myTable.getCellRenderer(row, col).getTabjavascriptleCellRendererComponent(
myTable,
myTable.getValueAt(row, col), false, false, row, col
).preferredSizehttp://www.baidu.com.getWidth()).toInt()
width =httpclient width.coerceAtLeast(preferedWidth)
}
headhtml是什么意思er.resizingColumn = column
column.width = width + myTable.intercellSpacing.width;
}
}
}

在配置文件中注册

在plugin.xml中注册刚才创建的BitCoinToohtml网页制作lWindowhttps和http的区别Factory

<idea-plugin>
&ltHTTP;id>org.exampgithub是干什么的le.bitcoinplugin</id&gthttp 302;
<name>比特币行情插件</name>
<vendor email="support@yourcompany.com" url="http://www.yourcompany.com">YourCompany&ltgithub永久回家地址mi;/vendor>
<descriptionhttp 302><![CDjson格式怎么打开ATjson是什么意思A[
Enterhttp://192.168.1.1登录 shogiti轮胎是什么品牌rt description for your plugin here.<br>
<em>most HTML tags may be used</em>
]]></description>
<!-- please see https://www.jetbrains.org/ihttp://www.baidu.comntellij/sdk/docs/basics/getting_started/Gitplugin_compaHTTPtjava是什么意思ibility.html
on how to target differentjava游戏 products -->
<depends>com.intellij.modules.platform</dependjson数据格式s>
<extensions defaultExtensihttpclientonNs="com.intellij">
<toolWindow id="绿油油" secondary="true" icon="AllIcons.General.Modified" anchor=giti轮胎是什么品牌"right"
factoryClass="cojava下载m.skateboard.coinsplugin.ui.BitCoinToolWindowFactory"/>
</extensions>
<actions>
<!-- Add your actions here -->
</actions>
</idea-plugin>

这里htmlToolWindow的名称叫做绿油油,这个名称感觉和这个插件的气质比较符合。

最后


当然,这个插件不可能作为真正的盯盘工具的,因为这个接口有些不稳定,而且不够及时,只是作为HTTPidea插件编写的一个小demo,各位大佬不要太较真,另外附上项目地址
** github.com/skateboard1… **

求关注


微信公众号:滑板上的老砒霜