最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

idea插件開發(fā)之彈出框的示例代碼

 更新時間:2020年12月16日 10:57:20   作者:EcksYang-1128  
這篇文章主要介紹了idea插件開發(fā)之彈出框的示例代碼,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下

前言

IntelliJ平臺的用戶界面廣泛使用彈出窗口,即沒有chrome(顯式關(guān)閉按鈕)的半模式窗口,在焦點丟失時自動消失。在插件中使用這些控件可以確保插件和IDE其他部分之間的用戶體驗一致。
彈出窗口可以選擇性地顯示標(biāo)題,也可以移動和調(diào)整大?。ú⒅С钟涀∷鼈兊拇笮。?,并且可以嵌套(當(dāng)選擇一個項目時顯示另一個彈出窗口)。

一、JBPopupFactory

JBPopupFactory 是idea 提供給用戶自定義窗口的接口,比較常見的方法如下

  • createComponentPopupBuilder() 允許您在彈出窗口中顯示任何Swing組件。
  • createPopupChooserBuilder() 創(chuàng)建一個多選/單選框
  • createConfirmation() 創(chuàng)建一個確認(rèn)框
  • createActionGroupPopup() 創(chuàng)建一個顯示方法組的窗口,選中會執(zhí)行方法。

創(chuàng)建彈出窗口后,需要通過調(diào)用show() 方法之一來顯示它。您可以通過調(diào)用showInBestPositionFor() 讓IntelliJ平臺根據(jù)上下文自動選擇位置,或者通過showUnderneathOf() 和ShowInCenter() 等方法顯式指定位置。

show() 方法立即返回,不等待彈出窗口關(guān)閉。

如果需要在彈出窗口關(guān)閉時執(zhí)行某些操作,可以使用addListener() 方法將偵聽器附加到它,然后重寫彈出試的方法,例如onChosen(),或在彈出窗口中將事件處理程序附加到您自己的組件。

二、demo

 1.showInBestPositionFor

Shows the popup in the position most appropriate for the specified data context.
在最適合指定數(shù)據(jù)上下文的位置顯示彈出窗口。

acaction 定義按鈕功能

public class TextBoxes extends AnAction {

 public TextBoxes() {
  super("MYSQL_COLUMN_ADD_PRO");
 }


 @Override
 public void actionPerformed(@NotNull AnActionEvent event) {
   // 獲取 JBPopupFactory
  JBPopupFactory instance = JBPopupFactory.getInstance();
  
  // 創(chuàng)建需要執(zhí)行的任務(wù)
  Runnable runnable = new Runnable() {
   @Override
   public void run() {
    Messages.showMessageDialog("aaa", "hello", Messages.getInformationIcon());
   }
  };
  ListPopup popup = instance.createConfirmation("hello", runnable, 1);
  popup.showInBestPositionFor(event.getDataContext());
 }
}

plugins.xml

<idea-plugin>
 <id>org.example.myPlugins</id>
 <name>MyPlugin</name>
 <vendor email="1585946147@qq.com" url="http://www.baidu.com">lieying</vendor>
 <description>first test plugin</description>
 <extensions defaultExtensionNs="com.intellij">
  <!-- Add your extensions here -->
 </extensions>
 <actions>
  <!-- Add your actions here -->
  <group id="MyPlugin.SampleMenu" text="_Sample Menu" description="Sample menu">
   <add-to-group group-id="MainMenu" anchor="last" />
   <action id="Myplugin.Textboxes" class="com.hunt.plugin.TextBoxes" text="Text _Boxes" description="A test menu item">
    <keyboard-shortcut keymap="$default" first-keystroke="ctrl alt Z" />
   </action>
  </group>
 </actions>
</idea-plugin>

實際效果

在這里插入圖片描述

2.show()

Shows the popup at the specified point.
顯示指定點的彈出窗口。

@Override
 public void actionPerformed(@NotNull AnActionEvent event) {
  // 獲取 JBPopupFactory
  JBPopupFactory instance = JBPopupFactory.getInstance();

  // 創(chuàng)建需要執(zhí)行的任務(wù)
  Runnable runnable = new Runnable() {
   @Override
   public void run() {
    Messages.showMessageDialog("aaa", "hello", Messages.getInformationIcon());
   }
  };
  ListPopup popup = instance.createConfirmation("hello", runnable, 1);

  // 固定指定一個點顯示
  Point point = new Point(200,300);
  RelativePoint relativePoint = new RelativePoint(point);
  popup.show(relativePoint);
 }

效果如下

在這里插入圖片描述

3.showUnderneathOf()

Shows the popup at the bottom left corner of the specified component.
顯示指定組件左下角的彈出窗口。

@Override
 public void actionPerformed(@NotNull AnActionEvent event) {
  // 獲取 JBPopupFactory
  JBPopupFactory instance = JBPopupFactory.getInstance();

  // 創(chuàng)建需要執(zhí)行的任務(wù)
  Runnable runnable = new Runnable() {
   @Override
   public void run() {
    Messages.showMessageDialog("aaa", "hello", Messages.getInformationIcon());
   }
  };
  ListPopup popup = instance.createConfirmation("hello", runnable, 1);

  // 獲取焦點的組件
  Component component = event.getDataContext().getData(PlatformDataKeys.CONTEXT_COMPONENT);
  // 組件下方顯示 popup
  popup.showUnderneathOf(component); 
 }

event.getDataContext().getData(PlatformDataKeys.CONTEXT_COMPONENT); 會返回獲取焦點的組件
比如

在這里插入圖片描述

4.showInFocusCenter

Shows the popups in the center of currently focused component
在獲取焦點組件的中間彈出popup

@Override
 public void actionPerformed(@NotNull AnActionEvent event) {
  // 獲取 JBPopupFactory
  JBPopupFactory instance = JBPopupFactory.getInstance();

  // 創(chuàng)建需要執(zhí)行的任務(wù)
  Runnable runnable = new Runnable() {
   @Override
   public void run() {
    Messages.showMessageDialog("aaa", "hello", Messages.getInformationIcon());
   }
  };
  ListPopup popup = instance.createConfirmation("hello", runnable, 1);

  popup.showInFocusCenter();
 }

在這里插入圖片描述

到此這篇關(guān)于idea插件開發(fā)之彈出框的示例代碼的文章就介紹到這了,更多相關(guān)idea彈出框內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • idea創(chuàng)建的idea項目時springframework出現(xiàn)紅色的原因和解決方法

    idea創(chuàng)建的idea項目時springframework出現(xiàn)紅色的原因和解決方法

    當(dāng)使用 IntelliJ IDEA 創(chuàng)建 Spring Framework 項目時,springframework 出現(xiàn)紅色可能是因為相關(guān)的 Spring Framework 依賴沒有正確加載或項目的配置有問題,本文給大家介紹了一些常見的原因和解決方法,需要的朋友可以參考下
    2023-09-09
  • Java集合Map的clear與new Map區(qū)別詳解

    Java集合Map的clear與new Map區(qū)別詳解

    這篇文章主要介紹了Java集合Map的clear與new Map區(qū)別詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-04-04
  • java 動態(tài)加載的實現(xiàn)代碼

    java 動態(tài)加載的實現(xiàn)代碼

    這篇文章主要介紹了java 動態(tài)加載的實現(xiàn)代碼的相關(guān)資料,Java動態(tài)加載類主要是為了不改變主程序代碼,通過修改配置文件就可以操作不同的對象執(zhí)行不同的功能,需要的朋友可以參考下
    2017-07-07
  • Java基本語法筆記(菜鳥必看篇)

    Java基本語法筆記(菜鳥必看篇)

    下面小編就為大家?guī)硪黄狫ava基本語法筆記(菜鳥必看篇)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-05-05
  • SpringBoot實現(xiàn)識別圖片中的身份證號與營業(yè)執(zhí)照信息

    SpringBoot實現(xiàn)識別圖片中的身份證號與營業(yè)執(zhí)照信息

    這篇文章主要為大家詳細(xì)介紹了SpringBoot如何實現(xiàn)識別圖片中的身份證號與營業(yè)執(zhí)照信息,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下
    2024-01-01
  • Java中的String.valueOf()和toString()方法區(qū)別小結(jié)

    Java中的String.valueOf()和toString()方法區(qū)別小結(jié)

    字符串操作是開發(fā)者日常編程任務(wù)中不可或缺的一部分,轉(zhuǎn)換為字符串是一種常見需求,其中最常見的就是String.valueOf()和toString()方法,本文主要介紹了Java中的String.valueOf()和toString()方法區(qū)別小結(jié),感興趣的可以了解一下
    2025-04-04
  • Mybatis Plus查詢時sql字段名大小寫報錯的解決

    Mybatis Plus查詢時sql字段名大小寫報錯的解決

    這篇文章主要介紹了Mybatis Plus查詢時sql字段名大小寫報錯的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-12-12
  • Spring Boot Web 靜態(tài)文件緩存處理的方法

    Spring Boot Web 靜態(tài)文件緩存處理的方法

    本篇文章主要介紹了Spring Boot Web 靜態(tài)文件緩存處理的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-02-02
  • SpringBoot使用DevTools實現(xiàn)后端熱部署的過程詳解

    SpringBoot使用DevTools實現(xiàn)后端熱部署的過程詳解

    在Spring Boot項目中,Spring Boot官方提供你了Devtools熱部署模塊,通過maven的方式導(dǎo)入就能使用,本文主要SpringBoot通過DevTools實現(xiàn)熱部署,感興趣的朋友一起看看吧
    2023-11-11
  • 使用ftpClient下載ftp上所有文件解析

    使用ftpClient下載ftp上所有文件解析

    最近項目需要寫個小功能,需求就是實時下載ftp指定文件夾下的所有文件(包括子目錄)到本地文件夾中,保留文件到目錄路徑不變。今天小編給大家分享使用ftpClient下載ftp上所有文件的方法,需要的的朋友參考下吧
    2017-04-04

最新評論

汽车| 石河子市| 泉州市| 碌曲县| 兖州市| 镇沅| 太原市| 平泉县| 贵南县| 九龙坡区| 阿拉善右旗| 会泽县| 台安县| 鄯善县| 嘉禾县| 大荔县| 广州市| 文安县| 上杭县| 扎囊县| 盱眙县| 白水县| 东山县| 连江县| 克拉玛依市| 大连市| 泸州市| 合阳县| 洛隆县| 宁津县| 柳江县| 东光县| 瑞安市| 岳阳市| 黄冈市| 泉州市| 青阳县| 孝感市| 浙江省| 卢湾区| 扎兰屯市|