1. 程式人生 > >JAVA 中選項卡的使用

JAVA 中選項卡的使用

       JAVA中使用選項卡,要用到JTabbledPane這個容器,現在就來說說這個容器的一些用法:

  一:JTabbedPane建構函式:

 JTabbedPane():建立一個空的JTabbedPane物件。
 JTabbedPane(int tabPlacement):建立一個空的JTabbedPane物件,並指定擺放位置,其位置有四個,JTabbedPane.RIGHT,JTabbedPane.TOP,JTabbedPane..BOTTOM,JTabbedPane.LEFT,圖如下:

二:JTabbedPane的事件處理:

  JTabbedPane以處理ChangeEvent事件為主。每當在JTabbedpane選換標籤時,都會產生ChangeEvent事件。因此要處理選換標籤所
對應的操作,必須實現ChangeListener這個interface.另外JTabbedPane上的每個標籤都有索引值(index),一般若沒有加以設定
,索引置從左到右依次是0,1,2.....,依此類推,因此下例中,Picture的索引值為0,Label 2的索引值為1。
一個標籤都有所對應的操作。

通過使用 addTab和 insertTab方法將選項卡/元件新增到 TabbedPane物件中。選項卡通過對應於新增位置的索引來表示,其中第一個選項卡的索引為 0,最後一個選項卡的索引為選項卡數減 1。

TabbedPane使用 SingleSelectionModel來表示選項卡索引集和當前所選擇的索引。如果選項卡數大於 0,則總會有一個被選定的索引,此索引預設被初始化為第一個選項卡。如果選項卡數為 0,則所選擇的索引為 -1。

具體例子:

import java.awt.Button;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTabbedPane;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;


public class JTablePaneAQ extends JFrame  implements ChangeListener{

 private JTabbedPane tablepane=null;//
 int index=0;
 public static void main(String[] args) {
  JTablePaneAQ aq=new JTablePaneAQ();

 }
 public JTablePaneAQ()
 
 {
  tablepane=new JTabbedPane(JTabbedPane.TOP);

  
  
  //
  JPanel panel_1=new JPanel();
  Button buttonwine=new Button("酒水");
  panel_1.add(buttonwine);
  buttonwine.addActionListener(new ActionListener() {
   public void actionPerformed(ActionEvent arg0) {
    JOptionPane.showMessageDialog(null, "這是酒水的選項卡。");
   }
  });

  
  //第二個主食選項卡
  JPanel panel_2=new JPanel();
  Button buttonfood=new Button("主食");
  panel_2.add(buttonfood);
  buttonfood.addActionListener(new ActionListener() {
   public void actionPerformed(ActionEvent e) {
    JOptionPane.showMessageDialog(null, "這是主食的選項卡。");
   }
  });
  /**
   * 第三個香菸選項卡
   */
  JPanel panel_3=new JPanel();
  Button buttoncigerate=new Button("香菸");
  
  panel_3.add(buttoncigerate);
  buttoncigerate.addActionListener(new ActionListener() {
   public void actionPerformed(ActionEvent e) {
    JOptionPane.showMessageDialog(null, "這是香菸的選項卡。");
   }
  });
  
  /**
   * 新增控制元件
   */
    tablepane.add("酒水", panel_1);
  tablepane.add("主食",panel_2);
  tablepane.add("香菸",panel_3);
  this.add(tablepane);
  
  /**
   * 設定主視窗屬性
   */
  this.setBounds(100, 200, 400, 500);
  this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  this.setVisible(true);
  
 }
/**
 * 實現ChangeListener方法,目的在使若左邊的標籤有點選過,右邊的標籤才會顯示Enable狀態。
 * getSelectedIndex()方法可返回目前點選標籤的index值,
 * getTabCount()方法可返回JTabbedPane上目前共有幾個標籤,
 * 而setEnabledAt()方法則是使某個標籤
*的狀態為Enable或Disable(true為Enable,false為Disable).
*/


 @Override
 public void stateChanged(ChangeEvent arg0) {
  // TODO 自動生成的方法存根
 if (index!=tablepane.getSelectedIndex()){
          if(index<tablepane.getTabCount()-1)
           tablepane.setEnabledAt(index+1,true);
      }
      index=tablepane.getSelectedIndex();

 }

}

相關推薦

JAVA 選項的使用

       JAVA中使用選項卡,要用到JTabbledPane這個容器,現在就來說說這個容器的一些用法:   一:JTabbedPane建構函式:  JTabbedPane():建立一個空的JTabbedPane物件。  JTabbedPane(int tabPlace

java swing新增選單和 選項窗體 。

1、  java中新增選單 。     JMenu jm=new JMenu("File") ;     //建立JMenu選單物件    JMenuItem t1=new JMenuItem("item1") ;  //選單項    JMenuItem t2=new J

介紹下京東的(選項選項)是怎麽實現的

pad b- cti pre set red 二維數組 node int 我們都誰知道選項卡是通過數組實現的,那麽選項卡中的選項卡無非就是一個二維數組。 道理邏輯很簡單,下面是我實現的一個方法: 1 <!DOCTYPE html> 2 <html

JAVA日期和時間的格式化選項

println 對象 bsp lec pub cti class 日子 月份 一、使用printf方法 1 import java.util.Date; 2 import java.util.Scanner; 3 4 5 public class Test

FlexTabNavigator隱藏和顯示選項

pro ble 點擊 plain bat summer microsoft _id lai 1、問題背景 遇到這樣一個問題:有四個Tab選項卡。依據不同的參數隱藏和顯示選項卡 2、實現實例 (1)隱藏“春季” protected fun

用angular的ng-repeat和ng-show來實現tab選項

new angular lis content padding col ora ack 顯示 雖然我們可以用angular中的路由來做tab選項卡,但是那會讓我們建立很多的頁面來引入,或者建立 <script type="text/ng-template" id="n

excel怎樣添加的選項含有下拉列表

tar more combo page targe amp 設置 date mic 1 <customUI 2 xmlns="http://schemas.microsoft.com/office/2006/01/customui"> 3

【windows】windows系統下,在任務管理器的進程選項查看PID/任務管理器怎麽查看PID

分享圖片 圖片 技術 啟動 最大值 成功 9.png mage 選擇列 PID,就是windows上的進程ID,是一個進程的唯一標識值。 那今天啟動JDK跑起來一個項目之後,想要在任務管理器中查看這個JDK所在進程的PID但是看不到。 怎麽解決? 1.我在任務管理

angularjs 的路由 與 bootstrap標簽選項的沖突 解決方案

target href targe home 選項 info 圖片 頁面跳轉 tst 當項目中使用了angularjs 的路由,則所有 像a標簽的href 的鏈接都會走路由,實現頁面跳轉,那麽有些地方需要使用選項卡,就會帶來麻煩。 路由使用如下圖: 某頁面需要使用boot

Myeclipse2017沒有 Dynamic Web Project 選項,是怎麽回事?

等等 包含 靜態頁 特性 cap 怎麽 自動 項目 框架   我們在Myeclipse2017中沒有 Dynamic Web Project 選項卡,是怎麽回事? 解釋一:   Dynamic Web Project 是Eclipse的項目,與其對應的有Static W

angularjs選項例項

angularjs中的bug ng-click,賦值,ng-repeat三個一起用會有bug一個angularjs的選項卡 <!DOCTYPE html> <html> <head> <meta charset="utf-8" />

在vue使用swiper做分類選項渲染時遇到的坑

公司產品最近一個版本要求是要做一個分類的選項卡,選項卡可以滑動,可以點選不同分類顯示不同的關卡 當時公司是用了swiper外掛來做的,可是swiper一般是用來做輪播圖,相比較之下還是差別比較大的,奈何我又是一個比較懶的程式猿,只能將swiper來完成需求了~~ 第一步是要引入檔案,我隨便寫

如何在office新增Mathtype選項

這個很簡單, 第一步,你在office的根目錄下建一個名為STARTUP的資料夾 第二部,在Mathtype的安裝路徑中找到兩個資料夾Office Support和MathPage,將裡面的檔案MathType commands 6 For Word.dot、MathTyp

本地連線屬性的“高階”選項不見了(本地連線無高階選項)

點選“開始→執行”(或按 Win+R 鍵),輸入 gpedit.msc 並回車開啟“組策略”視窗,依次點到“使用者配置→管理模板→網路→網路連線”,雙擊右邊的“為管理員啟用 Windows 2000 網路連線設定”項,將該策略設定為“已禁用”,“確定”儲存設定即可 太蛋

C# WinForm如何在選項整合載入多個窗體

專案檔案組織: 主程式介面: 將tabControl1中的兩個選項頁的tag分別寫上form2和form3的類名稱。 被包含窗體Form2: 被包含窗體Form3: 執行結果:from2和form3兩個窗體都整合到form1中的選項卡中顯示:

php如何在頁面制作三級聯動的選項

連接數據庫 oct ++ row strong 獲取 lse 地址查詢 com 我們在網頁中經常會見到多重的選項卡,當一個選項內容發送改變時,另外的選項卡內容也相應改變,例如在某個地址查詢的選項中,當你選擇“山東省”的時候,那麽“市”,“區”的選項也會相應發生變化,本篇將說

easyUItabs使用iframe的方式載入選項

使用了easyUi,發現panel元件的href比較坑人,不像extJs的html屬性那樣。今天遇到了tabs新增頁籤時需要使用iframe展示的問題,總結如下: function addTab(ti

C#關於TabControl設定選項的大小問題

   今天在使用Winform下的TabControl控制元件時,發現選項卡大小的調整不僅僅是設定寬度和高度那麼簡單,下面 對TabControl選項卡大小的設定進行總結(以顯示在頂部的選項卡為例):      設定選項卡大小的第一步就是設定TabControl的

java使用$.ajax建立下拉選項

 從資料庫中取出相應資料,存在list中,下面直接從servlet講:, servlet: 在servlet中,將儲存在list中的資料,轉為json型別: 相應程式碼: Gson gson = newGson();//建立Gson物件 String j

Java圖形介面——選項窗格、面板元件、網格佈局

package com.test.swing; import java.awt.*; import javax.swing.*; public class QLogin extends JFrame{ //定義元件 //北部區域 JLabel jl1; //