java列表框(JList和JComboBox)使用
java列表框有JList和JCombox兩種型別,使用的方法類似。
實現頁面
程式程式碼
import javax.swing.*;
import javax.swing.border.EtchedBorder;
import javax.swing.border.TitledBorder;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
public class List1 {
JFrame jf=new JFrame("列表框測試");
String[] books={"java", "android", "C++", "C", "C#", "HTML", "js"};
JPanel layoutPanel=new JPanel();
ButtonGroup layoutGroup=new ButtonGroup();
JPanel selectModelPanel=new JPanel();
ButtonGroup selectModeGroup=new ButtonGroup();
JTextArea favorite=new JTextArea(4, 40);
//JList和JComboBox方法類似
JList<String> bookList;
JComboBox<String> bookSelector;
public void init(){
//設定容器和元件的邊框
layoutPanel.setBorder(new TitledBorder(new EtchedBorder(), "確定選項佈局"));
selectModelPanel.setBorder(new TitledBorder(new EtchedBorder(), "確定選擇模式"));
favorite.setBorder(new EtchedBorder());
//建立JList
bookList=new JList<>(books);
bookList.setVisibleRowCount(3);
bookList.setSelectionInterval(1,2);
//建立JComboBox
bookSelector=new JComboBox<>(books);
bookSelector.setEditable(true);
bookSelector.setMaximumRowCount(4);
bookSelector.addItemListener(new ItemListener() {
@Override
public void itemStateChanged(ItemEvent e) {
Object selectedItem = bookSelector.getSelectedItem();
if(selectedItem!=null){
favorite.setText(selectedItem.toString());
}
}
});
//設定佈局按鈕
addBtn2LayoutPanel("縱向滾動", JList.VERTICAL);
addBtn2LayoutPanel("縱向換行", JList.VERTICAL_WRAP);
addBtn2LayoutPanel("橫向換行", JList.HORIZONTAL_WRAP);
//設定選擇按鈕
addBtn2SelectPanel("無限制", ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
addBtn2SelectPanel("單選", ListSelectionModel.SINGLE_SELECTION);
addBtn2SelectPanel("單範圍", ListSelectionModel.SINGLE_INTERVAL_SELECTION);
//垂直佈局容器
Box leftVBox = Box.createVerticalBox();
//使用JScrollPane,才會有滾動條
leftVBox.add(new JScrollPane(bookList));
leftVBox.add(layoutPanel);
leftVBox.add(selectModelPanel);
//JComboBox放在Panel中才會填滿介面
JPanel bookSelectorPanel = new JPanel();
bookSelectorPanel.add(bookSelector);
//頂部容器
Box topBox = Box.createHorizontalBox();
topBox.add(leftVBox);
topBox.add(bookSelectorPanel);
//底部容器
JPanel bottomPanel = new JPanel();
bottomPanel.setLayout(new BorderLayout());
bottomPanel.add(new JLabel("你最喜歡的圖書:"), BorderLayout.NORTH);
bottomPanel.add(favorite);
//組合在window中
Box box = Box.createVerticalBox();
box.add(topBox);
box.add(bottomPanel);
jf.add(box);
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
jf.pack();
jf.setVisible(true);
}
//新增改變佈局的按鈕
public void addBtn2LayoutPanel(String name, int layoutType){
JRadioButton btn=new JRadioButton(name);
layoutPanel.add(btn);
if(layoutGroup.getButtonCount()==0){
btn.setSelected(true);
}
layoutGroup.add(btn);
btn.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
bookList.setLayoutOrientation(layoutType);
}
});
}
//新增改變選取的按鈕
public void addBtn2SelectPanel(String name, int selectType){
JRadioButton btn=new JRadioButton(name);
selectModelPanel.add(btn);
if(selectModeGroup.getButtonCount()==0){
btn.setSelected(true);
}
selectModeGroup.add(btn);
btn.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
bookList.setSelectionMode(selectType);
}
});
}
//main()
public static void main(String[] args) {
new List1().init();
}
}
相關文章
- 分頁列表框架框架
- 易語言陣列和超級列表框demo陣列
- 分頁列表框架(二)框架
- 分頁列表框架(三)框架
- 分頁列表框架(四)框架
- C++ Qt 開發:ListWidget列表框元件C++QT元件
- Ajax 應用模板(動態載入列表框)
- C/C++ Qt ListWidget 列表框元件應用C++QT元件
- 使用OkHttp和Java來下載HTTPJava
- 使用JAXB處理JAVA和XMLJavaXML
- 請教大蝦:有關JComboBox控制元件的焦點問題?控制元件
- 在Java中使用Callable和FutureJava
- Java 異常處理:使用和思考Java
- java註解初步學習和使用Java
- java <%!%>標籤和<%%>標籤的使用Java
- Java HashMap 和 HashSet 的高效使用技巧JavaHashMap
- 一個輕量級的資料驅動列表框架 YHListKit框架
- 開始使用GraphQL Java和Spring BootJavaSpring Boot
- java 多執行緒使用PipedOutStream和PipedInputStreamJava執行緒
- Java執行緒池的使用和原理Java執行緒
- 使用XML和Java混合控制UI頁面XMLJavaUI
- Java列舉型別的使用和原理Java型別
- Java 使用 TCP 和 UDP 傳輸檔案JavaTCPUDP
- 使用Java和Google Guava簡化開發JavaGoGuava
- Java 監控基礎 - 使用 JMX 監控和管理 Java 程式Java
- VCL元件之列表框(ListBox)與組合框(ComboBox)元件
- 【JAVA】java使用Java
- Java Shutdown Hook 場景使用和原始碼分析JavaHook原始碼
- Effective Java 避免使用終結方法和清空方法Java
- Java大數相乘(使用BigInteger和BigDecimal)JavaDecimal
- 使用JDK工具jmap和jhat監控Java程式JDKJava
- Java中的引用型別和使用場景Java型別
- HBase的安裝配置和使用Java連線Java
- Java使用Porxy和InvocationHandler實現動態代理Java
- Java的wait(), notify()和notifyAll()使用心得JavaAI
- Java:使用Executors建立和管理執行緒薦Java執行緒
- 使用Java和Elastic Stack進行日誌分析JavaAST
- 使用Java和Reactive Streams構建流式應用JavaReact