(總結)Swing元件的使用---下拉式選單(menu),彈出式選單(JPopupMenu),選項卡窗體(JTabbedPane)
選單是GUI中最常用的元件,選單不是Component類的子類,不能放置在普通容器中,不受佈局管理器的約束,只能放置在選單欄中.
選單元件由選單欄 (MenuBar)、選單(Menu)和選單項(MenuItem)三部分組成。 一個選單欄由若干個選單組成,一個選單又由若干個選單項組成。一般選單欄放 Frame 視窗中,只要呼叫 Frame 類的 setMenuBar()方法即可。
常用的選單有:下拉式選單和彈出式選單(獨立顯示,可出現在任意地方).
一:下拉式選單的建立步驟:
1.建立一個選單欄。
2.呼叫 Frame 的 setMenuBar()方法將選單欄加入 Frame 中。
3.分別建立若干個 Menu 物件,並加入 MenuBar 中。
4.對於每個 Menu 物件,分別建立若干個 MenuItem 物件,並加入 Menu 中。
例項:
import java.awt.*; public class MenuDemo { Frame f; MenuBar mb; Menu menuFile; MenuItem mItemNew, mItemOpen, mItemSave; MenuDemo() { f = new Frame("我的選單例項"); f.setBounds(300, 100, 400, 300); mb = new MenuBar(); // 建立選單欄MenuBar menuFile = new Menu("檔案"); mItemNew = new MenuItem("新建"); mItemOpen = new MenuItem("開啟"); menuFile.add(mItemNew); mItemSave = new MenuItem("儲存"); menuFile.add(mItemOpen); // 加入分割線 menuFile.addSeparator(); menuFile.add(mItemSave); mb.add(menuFile); // 選單欄中加入“檔案”選單 // setMenuBar:將此窗體的選單欄設定為指定的選單欄。 f.setMenuBar(mb); f.setVisible(true); } public static void main(String[] args) { new MenuDemo(); } }
有圖有真相:(下拉的選單項無法截圖)
二:彈出式選單的建立步驟:
1.先建立最基本的JFrame框架.
2.建立右鍵彈出式選單(JPopupMenu)和新增的選單項(JMenuItem). 3.使用add方法和insert方法向JPopupMenu中新增或者插入. 4.通過呼叫彈出式選單觸發器對應的show方法來顯示彈出式選單,檢查所有的MouseEvent事件,看其是否是彈出式選單觸發器,然後在合適的時候顯示彈出式選單
例項:
import java.awt.event.*; import javax.swing.*; public class JPopMenu_Demo extends JFrame { // 彈出選單的實現,彈出選單是一個可彈出並顯示一系列選項的小視窗 JPopupMenu popupMenu; public JPopMenu_Demo() { super("右鍵彈出式選單"); // 呼叫父類建構函式 // 例項化彈出選單 popupMenu = new JPopupMenu(); // 增加選單項到選單上 popupMenu.add(new JMenuItem("選單項")); popupMenu.add(new JButton("按鈕")); popupMenu.add(new JLabel("標籤")); myEvents(); setSize(350, 300); // 設定視窗大小 setLocation(400, 200); setVisible(true); // 設定視窗為可視 setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // 關閉視窗時退出程式 } private void myEvents() { // 視窗的滑鼠事件處理 addMouseListener(new MouseAdapter() { // 點選滑鼠 public void mousePressed(MouseEvent event) { // 呼叫triggerEvent方法處理事件 triggerEvent(event); } // 釋放滑鼠 public void mouseReleased(MouseEvent event) { triggerEvent(event); } private void triggerEvent(MouseEvent event) { // 處理事件 // isPopupTrigger():返回此滑鼠事件是否為該平臺的彈出選單觸發事件。 if (event.isPopupTrigger()) // 顯示選單 popupMenu.show(event.getComponent(), event.getX(), event.getY()); } }); } public static void main(String args[]) { new JPopMenu_Demo(); } }
有圖有真相(不過挺醜)
三:選項卡窗體:
1.基本說明:
2.常用方法:
我們把多個JPanel的物件新增到 JTabbedPanel中去 。然後再
JTabbedPanel 新增到窗體,程式碼如下:
JTabbedPane jp=new JTabbedPane(JTabbedPane.LEFT) ; //設定選項卡在座標
JPanel p1=new JPanel() ;
JPanel p2=new JPanel() ;
JPanel p3=new JPanel() ;
JPanel p4=new JPanel() ; //建立多個容器
jp.add("窗體1", p1) ;
jp.add("窗體2", p2) ;
jp.add("窗體3", p3) ;//新增子容器,並且為選項卡新增名字
this.add(jp,BorderLayout.CENTER); //將選項卡窗體新增到主窗體上去
3.程式碼示例和截圖:
import java.awt.*;
import javax.swing.*;
/**
* <p>Title: 選項卡演示</p>
* <p>Description: 這裡是一個選項卡演示,點選不同的卡片,顯示的內容不同</p>
*/
public class JTabbedPaneDemo1 extends JPanel {
public JTabbedPaneDemo1() {
super(new GridLayout(1, 1));
ImageIcon icon = createImageIcon("images/MyIcon.gif");
JTabbedPane tabbedPane = new JTabbedPane();
Component panel1 = makeTextPanel("#第一個卡片#");
tabbedPane.addTab("One", icon, panel1, "第一個卡片提示資訊!");
tabbedPane.setSelectedIndex(0);
Component panel2 = makeTextPanel("##第二個卡片##");
tabbedPane.addTab("Two", icon, panel2, "第二個卡片提示資訊!");
Component panel3 = makeTextPanel("###第三個卡片###");
tabbedPane.addTab("Three", icon, panel3, "第三個卡片提示資訊!");
Component panel4 = makeTextPanel("####第四個卡片####");
tabbedPane.addTab("Four", icon, panel4, "第四個卡片提示資訊!");
// 將選項卡新增到panl中
add(tabbedPane);
}
/**
* <br>
* 方法說明:新增資訊到選項卡中 <br>
* 輸入引數:String text 顯示的資訊內容 <br>
* 返回型別:Component 成員物件
*/
protected Component makeTextPanel(String text) {
JPanel panel = new JPanel(false);
JLabel filler = new JLabel(text);
filler.setHorizontalAlignment(JLabel.CENTER);
panel.setLayout(new GridLayout(1, 1));
panel.add(filler);
return panel;
}
/**
* <br>
* 方法說明:獲得圖片 <br>
* 輸入引數:String path 圖片的路徑 <br>
* 返回型別:ImageIcon 圖片物件
*/
protected static ImageIcon createImageIcon(String path) {
// java.net.URL imgURL = TabbedPaneDemo.class.getResource(path);
if (path != null) {
return new ImageIcon(path);
} else {
System.out.println("Couldn't find file: " + path);
return null;
}
}
public static void main(String[] args) {
// 使用Swing窗體描述
// JFrame.setDefaultLookAndFeelDecorated(true);
try {
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
} catch (Exception e) {
}
// 建立窗體
JFrame frame = new JFrame("TabbedPaneDemo");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().add(new JTabbedPaneDemo1(), BorderLayout.CENTER);
// 顯示窗體
frame.setSize(400, 200);
frame.setVisible(true);
}
}
執行截圖:
相關推薦
(總結)Swing元件的使用---下拉式選單(menu),彈出式選單(JPopupMenu),選項卡窗體(JTabbedPane)
選單是GUI中最常用的元件,選單不是Component類的子類,不能放置在普通容器中,不受佈局管理器的約束,只能放置在選單欄中. 選單元件由選單欄 (MenuBar)、選單(Menu)和選單項(MenuItem)三部分組成。 一個選單欄由若干個選單組成,一個選單又由若干
C# winfrom Datagridview控制元件下拉選單
拖拽一個datagridview放在介面,編輯列把下來選單那列ColumnType設定成DataGridViewComboBoxColumn 然後在資料一欄的Items可以寫下來選單的內容也可以後臺程式碼寫 下面是後臺程式碼實現功能 private void dgUserAuthData_Edi
BootStrap-CSS樣式_佈局元件_按鈕選單元件(下拉框上拉框)
選單按鈕涉及樣式屬性: 1. 基本選單 divider樣式:顯示下劃線效果 2.設定選單文字對齊 text-right樣式:右對齊 text-center:居中 text-left(預設):左對齊 3.帶標題的選單 dropdown-header樣式:設定標題樣式,並
彈出式選單(下拉選單)實現——PopupMenu
PopupMenu代表彈出式選單,它會在指定元件上彈出PopupMenu,預設情況下,PopupMenu會顯示在該元件的下方或上方。PopupMenu可增加多個選單項,並可為選單項增加子選單。 使用PopupMenu建立選單的步驟非常簡單,只要如下步驟即可。 呼叫new PopupMenu(Context c
Bootstrap 元件-下拉選單
下拉選單 選單div<div class="dropdown">下拉按鈕,id用來給下拉選單指向用的<button type="button" class="btn dropdown-toggle" id="dropdownMenu1" data-togg
Bootstrap元件---下拉選單,多級選單 ,按鈕
下拉選單 選單: ,dropdown(.dropup改變這個是上顯示) data-toggle="dropdown" (啟用文字處) .dropdown-menu .pull-left .pull-right 按鈕組:.btn
Android快速開發控制元件---下拉導航選單
LQRDropdownLayout 該專案是下拉導航選單,使用非常簡單。基於FilterDropDownMenu-master專案進行封裝,因為原專案的使用太複雜了,光佈局就得幾十行程式碼,如果專案中多處用到下拉選單,那程式碼的冗餘度就太大了,故本佈局對其進行
Select2元件下拉框的使用
angularjs與select2的下拉框使用 頁面引入js檔案 定義下拉框需要展示的資料 下拉框 頁面引入js檔案 <link rel="stylesheet" href="../plugins/selec
Android——(高階控制元件下拉框與搜尋框)
1. 高階控制元件與低階控制元件區別 是否使用介面卡 2. 介面卡種類和作用 2.1 種類 陣列介面卡 ArrayAdapter new ArrayAdapt
頭部視覺視差(仿QQ控制元件下拉效果)
看到新版QQ空間出來的時候,首頁的下拉的效果比較炫酷,下拉的時候會把整張圖片顯示出來,鬆開手之後就會自己恢復原狀,不說了,上程式碼。 這是效果圖 public class ParallaxListView extends ListView {//關於自定義控制元件//onmeasu
高階查詢元件下拉框聯動(三)
實現下拉框聯動例子. 1.首先在ul中定義省份和城市查詢條件。 <ul id="dynamicCondition" style="display:none;"> <li field="DynamicCondition.province" title="省份"
C# combox控制元件下拉列表模糊查詢
//預設查詢全部,可以選擇取消 private void FrmAddShang_Load(object sender, EventArgs e) { SqlConnection conn = DB.lianjie();
Android第六次——(高階控制元件下拉框與搜尋框)
1. 高階控制元件與低階控制元件區別 是否使用介面卡 2. 介面卡種類和作用 2.1 種類 陣列介面卡 ArrayAdapter new ArrayAdapter<String>(this,R.layout.actv_sty
自定義控制元件之組合式控制元件 下拉選擇框
自定義控制元件之組合式控制元件 下拉選擇框 文章目錄 自定義控制元件之組合式控制元件 下拉選擇框 零 組合控制元件下載 一 自定義控制元件思路 二 MainActivity核心程式碼 三 activity_main.xml
jQuery UI Autocomplete控制元件下拉列表固定高度
jQuery ui Autocomplete控制元件下拉列表高度預設是自適應的,有多少資料就會加載出來多少行。以下是給下拉列表設定一個預設高度並新增滾動條的解決辦法。 在樣式裡新增以下程式碼 .ui-autocomplete { max-he
android 控制元件 下拉重新整理 phoenix 帶原始碼分析
向納什致敬,鳳凰城永遠的英雄!phoenix Yalantis 致力於提供世界一流的 Android 和 iOS 應用開發服務,因一些 動畫很棒的開源庫為大家所熟知 Phoenix-Android 旨在提供一個簡單的可定製的下拉重新整理功能。 <com
下拉列表聯動總結(AJAX下拉列表聯動簡單示例)
最近發現CSDN上有很多人在詢問 有關聯動的下拉列表的問題,所以在此做以總結,希望還有新的實現方法,這裡介紹三中實現方法,包括一個簡單的AJAX版的聯動. 下拉列表聯動有很多方法可以實現: 1.JavaScript實現,JS實現
PropertyGrid控制元件下拉列表
1 ///<summary> 2 /// 一.自定義一個特性類ListAttribute,提供下拉列表值: 3 ///</summary> 4 publicclass ListAttribute : Attribute 5 { 6 publicstring[]
(總結)Swing元件的使用---文字框(JTextField)與文字區(JTextArea)
一:JTextField的(文字框)使用: JTextField 是一個輕量級元件,它允許編輯單行文字。 1.JTextField的常用構造方法: JTextField() 構造一個新的 TextField。 JTextField(int columns
(四十八)c#Winform自定義控制元件-下拉按鈕
前提 入行已經7,8年了,一直想做一套漂亮點的自定義控制元件,於是就有了本系列文章。 GitHub:https://github.com/kwwwvagaa/NetWinformControl 碼雲:https://gitee.com/kwwwvagaa/net_winform_custom_contr