JAVA(UI)笔记
2013-10-03 19:00
176 查看
1、JTabbedPane设置为透明
3、JcomboBox监听
UIManager.put("TabbedPane.contentOpaque", Boolean.FALSE);//此UIManager可以使JTabbedPane变的透明 JTabbedPane tabbedPane = new JTabbedPane(JTabbedPane.TOP); tabbedPane.setTabLayoutPolicy(JTabbedPane.SCROLL_TAB_LAYOUT); tabbedPane.setBounds(0, 0, 668, 424); tabbedPane.addTab("tab2", null, new JLabel("123"), "123"); panelContainer.add(tabbedPane);
2、java application 中设置界面风格
try { UIManager.setLookAndFeel("com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel");//Nimbus风格,新出来的外观,jdk6 update10版本以后的才会出现 //UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());//当前系统风格 //UIManager.setLookAndFeel("com.sun.java.swing.plaf.motif.MotifLookAndFeel");//Motif风格,外观接近windows经典,但宽宽大大,而且不是黑灰主色,而是蓝黑 //UIManager.setLookAndFeel(UIManager.getCrossPlatformLookAndFeelClassName());//跨平台的Java界面风格,不太明白这种说法 //UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");//windows风格 //UIManager.setLookAndFeel("javax.swing.plaf.windows.WindowsLookAndFeel");//windows风格 //UIManager.setLookAndFeel("javax.swing.plaf.metal.MetalLookAndFeel");//java风格 //UIManager.setLookAndFeel("com.apple.mrj.swing.MacLookAndFeel");//现在在我的机器上没有特殊显示,有待有兴趣的朋友考察,并多谢告知 } catch (Exception e) { e.printStackTrace(); }
3、JcomboBox监听
import java.awt.BorderLayout; import java.awt.event.ItemEvent; import java.awt.event.ItemListener; import java.util.HashMap; import java.util.Map; import java.util.Vector; import javax.swing.DefaultComboBoxModel; import javax.swing.JComboBox; import javax.swing.JFrame; import javax.swing.JOptionPane; import javax.swing.JPanel; public class MainFrame extends JFrame implements ItemListener { /** * */ private static final long serialVersionUID = 1L; private JComboBox college; private JComboBox major; private Map<Integer, Vector<String>> map = new HashMap<Integer, Vector<String>>(); public MainFrame() { Vector<String> collegeItems = new Vector<String>(); collegeItems.add("物信学院"); collegeItems.add("数统学院"); collegeItems.add("文史学院"); college = new JComboBox(collegeItems); college.addItemListener(this); //物信学院的专业 Vector<String> vector0 = new Vector<String>(); vector0.add("物理"); vector0.add("计算机"); vector0.add("电信"); map.put(0, vector0); //数统学院的专业 Vector<String> vector1 = new Vector<String>(); vector1.add("应用数学"); vector1.add("统计学"); vector1.add("理论数学"); map.put(1, vector1); //文史学院的专业 Vector<String> vector2 = new Vector<String>(); vector2.add("汉语言文学"); vector2.add("历史"); vector2.add("戏剧文学"); map.put(2, vector2); major = new JComboBox(new DefaultComboBoxModel(map.get(0))); major.addItemListener(this); JPanel panel = new JPanel(); panel.add(college); panel.add(major); this.add(panel, BorderLayout.NORTH); this.setTitle("JComboBox示例"); this.setSize(800,600); this.setVisible(true); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } public void itemStateChanged(ItemEvent e) { //在JComboBox的监听事件时总是执行两次,原因如下: //ItemListener类中的方法itemStateChanged()事件的itemState有关,itemState在这里的状态有两个,Selected 和 deSelected(即选中和未被选中) //所以,当改变下拉列表中被选中的项的时候,其实是触发了两次事件: //第一次是上次被选中的项的 State 由 Selected 变为 deSelected ,即取消选择 //第二次是本次被选中的项的 State 由 deSelected 变为 Selected ,即新选中,所以,必然的 ItemStateChanged 事件中的代码要被执行两次了。 //加上最外面的if语句,就可以解决这个问题。 if(e.getStateChange() == ItemEvent.SELECTED) { if(e.getSource() == college) { int index = college.getSelectedIndex(); major.setModel(new DefaultComboBoxModel(map.get(index))); } else if(e.getSource() == major) { JOptionPane.showMessageDialog(this, "你选择的是:" + college.getSelectedItem() + "的" + major.getSelectedItem() + "专业!"); } } } public static void main(String[] args) { new MainFrame(); } }
相关文章推荐
- Java程序员的JavaScript学习笔记(13—— jQuery UI)
- Java代理学习笔记
- 黑马程序员-自己总结的java学习笔记(5)继承,接口,多态。
- java笔记-面向对象-重载、数组
- 黑马程序员_java基础笔记(08)...GUI,网络编程,正则表达式
- Java学习笔记-对象与类
- java之CountDownLatch看看笔记
- java学习笔记(十)
- Java 基础一些代码练习笔记(HashMap)
- Java复习笔记6【求四位吸血鬼数字】
- 大龄屌丝自学笔记--Java零基础到菜鸟--004
- Java笔记
- [java 深入]《java 虚拟机规范 se7》 阅读笔记
- hadoop学习笔记--5.HDFS的java api接口访问
- java笔记
- java笔记--关于线程同步(7种同步方式)
- JAVA语言规范学习笔记(2)
- JAVA笔记【20131218】
- Java学习笔记(十九):Object类
- 【操作系统笔记】线程的实现与调度(结合Java)