아이디어 플러그 인 개발 팝 업 상자 의 예제 코드

머리말
IntelliJ 플랫폼 의 사용자 인 터 페 이 스 는 팝 업 창,즉 chrome(현식 닫 기 단추)이 없 는 반 모드 창 을 광범 위 하 게 사용 하 며 초점 을 잃 어 버 렸 을 때 자동 으로 사라 집 니 다.플러그 인 에서 이 컨트롤 을 사용 하면 플러그 인과 IDE 의 다른 부분 간 의 사용자 체험 이 일치 하도록 확보 할 수 있 습 니 다.
팝 업 창 은 제목 을 선택 적 으로 표시 할 수도 있 고 크기 를 이동 하고 조정 할 수도 있 으 며,끼 워 넣 을 수도 있 습 니 다.(항목 을 선택 할 때 다른 팝 업 창 을 표시 합 니 다.)
1.JBPopupFactory
JBPopupFactory 는 아이디어 가 사용자 정의 창 을 제공 하 는 인터페이스 로 흔히 볼 수 있 는 방법 은 다음 과 같다.
  • createComponentPopupBuilder()는 팝 업 창 에 Swing 구성 요 소 를 표시 할 수 있 습 니 다
  • createPopupChooserBuilder()다 중 선택/단일 선택 상 자 를 만 듭 니 다
  • createConfirmation()확인 상 자 를 만 듭 니 다
  • createAction GroupPopup()은 디 스 플레이 방법 그룹의 창 을 만 들 고 실행 방법 을 선택 합 니 다
  • 팝 업 창 을 만 든 후 쇼()방법 으로 표시 해 야 합 니 다.showInBestPositionFor()를 호출 하여 IntelliJ 플랫폼 이 상하 문 에 따라 위 치 를 자동 으로 선택 하거나 쇼 Underneathof()와 쇼 InCenter()등 방법 으로 위 치 를 명시 적 으로 지정 할 수 있 습 니 다.
    팝 업 창 이 닫 히 기 를 기다 리 지 않 고 show()방법 을 즉시 되 돌려 줍 니 다.
    팝 업 창 이 닫 힐 때 일부 작업 을 수행 하려 면 addListener()방법 으로 탐지 기 를 추가 한 다음 팝 업 시험 방법 을 다시 쓸 수 있 습 니 다.예 를 들 어 onChosen()이나 팝 업 창 에서 이벤트 처리 프로그램 을 구성 요소 에 추가 할 수 있 습 니 다.
    데모
     1.showInBestPositionFor
    Shows the popup in the position most appropriate for the specified data context.
    지정 한 데이터 컨 텍스트 에 가장 적합 한 위치 에 팝 업 창 을 표시 합 니 다.
    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();
      
      //          
      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="[email protected]" 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();
    
      //          
      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();
    
      //          
      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
    초점 구성 요소 가 져 오기 중간 팝 업 팝 업
    
    @Override
     public void actionPerformed(@NotNull AnActionEvent event) {
      //    JBPopupFactory
      JBPopupFactory instance = JBPopupFactory.getInstance();
    
      //          
      Runnable runnable = new Runnable() {
       @Override
       public void run() {
        Messages.showMessageDialog("aaa", "hello", Messages.getInformationIcon());
       }
      };
      ListPopup popup = instance.createConfirmation("hello", runnable, 1);
    
      popup.showInFocusCenter();
     }
    在这里插入图片描述
    아이디어 플러그 인 개발 의 팝 업 상자 에 대한 예제 코드 에 관 한 이 글 은 여기까지 소개 되 었 습 니 다.더 많은 아이디어 팝 업 상자 내용 은 예전 의 글 을 검색 하거나 아래 의 관련 글 을 계속 찾 아 보 세 요.앞으로 많은 지원 바 랍 니 다!

    좋은 웹페이지 즐겨찾기