关于JMenuBAr,JMenu,JMenuItem,JList,JComboBox
来源:互联网 发布:淘宝宝贝详情模块 编辑:程序博客网 时间:2024/06/03 10:38
最近想构建多级菜单,并且在多级菜单里面添加下拉列表,所遇到的问题!
菜单栏JMenuBar 菜单JMenu 菜单项JMenuItem 组件Component
A:对于构建多级菜单的认识:
一个窗体里只能添加一个 JMenuBar
可以使用 JMenu 添加 JMenu 构建多级菜单。
不能使用 JMenuItem 添加任何 Component,否者添加 Component的 JMenuItem 将会消失在。
B:关于JMenu,JMenuItem,JList,JComboBox:
Jmenu添加JList,使用相对应的ListSelectionListener监听有效。
JMenu添加JComboBox,使用相对应的ItemStateChange监听无效。
关于记事本代码如下:
import java.awt.BorderLayout;
import java.awt.Font;
import javax.swing.*;
import javax.swing.event.*;
import java.awt.event.*;
import java.io.*;
import java.util.Scanner;
class Note implements ActionListener{
private JFrame frame =new JFrame("狼子记事本");
private JMenuBar menuBar =new JMenuBar();
private JMenu menuFont=new JMenu("字体");
private JMenu menuSize=new JMenu("字体大小");
private JList<String> box=null;
private JMenu menuFile=new JMenu("文件");
private JMenuItem open=new JMenuItem("打开文件");
private JMenuItem save=new JMenuItem("保存文件");
private JLabel label=new JLabel("langzi");
private JTextArea text=new JTextArea(30,30);
private String str[]={"10","15","20","25","30","30","40","45","50","55","60","65","70","75","80","85","90"};
public Note() {
open.addActionListener(this);
save.addActionListener(this);
box=new JList<String>(str);
menuBar.add(menuFont); //构建多级菜单
menuBar.add(menuFile);
menuFont.add( menuSize);
menuSize.add(box);
menuFile.add(open);
menuFile.add(save);
frame.setJMenuBar(menuBar); //构建窗体
frame.setLayout(new BorderLayout());
frame.add(label,BorderLayout.NORTH);
frame.add(new JScrollPane(text),BorderLayout.CENTER);
frame.setVisible(true);
frame.pack();
frame.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(1);
}
});
box.addListSelectionListener(new ListSelectionListener() { //字体大小监听
public void valueChanged(ListSelectionEvent e) {
int size=15;
int temp=box.getSelectedIndex();
String str=(String)box.getModel().getElementAt(temp);
size =Integer.parseInt(str);
changeSize(size);
}
});
}
public void changeSize(int size){ //字体改变的方法
Font font=new Font("1001",Font.BOLD,size);
this.label.setFont(font);
this.text.setFont(font);
}
public void actionPerformed(ActionEvent e){
int result=0;
File file=null;
if(e.getSource()==open){ //文件打开监听
JFileChooser fileChooser=new JFileChooser();
result=fileChooser.showOpenDialog(this.frame);
if(result==JFileChooser.APPROVE_OPTION){
text.setText("");
file=fileChooser.getSelectedFile();
label.setText("打开的文件名为"+file.getName());
}else if(result==JFileChooser.CANCEL_OPTION){
label.setText("langzi");
}else{
label.setText("文件操作有误");
}
if(file!=null){
try{
Scanner scan=new Scanner(new FileInputStream(file));
scan.useDelimiter("\n");
while(scan.hasNext()){
text.append(scan.next()+"\n");
}
scan.close();
}catch(Exception ee){
label.setText("文件读取失败");
}
}
}
if(e.getSource()==save){ //文件保存监听
JFileChooser fileChooser=new JFileChooser();
result=fileChooser.showSaveDialog(this.frame);
if(result==JFileChooser.APPROVE_OPTION){
file=fileChooser.getSelectedFile();
label.setText("保存的路径为 "+file.getPath());
}else if(result==JFileChooser.CANCEL_OPTION){
label.setText("langzi");
}else{
label.setText("文件操作有误");
}
if(file!=null){
try{
PrintStream out=new PrintStream(new FileOutputStream(file));
out.print(text.getText());
out.close();
}catch(Exception ee){
label.setText("文件保存失败");
}
}
}
}
}
public class R5{
public static void main(String args[]){
new Note();
}
}
- 关于JMenuBAr,JMenu,JMenuItem,JList,JComboBox
- JMenuBar,JMenu,JMenuItem的关系
- JMenuBar,JMenu,JMenuItem的关系
- Swing基本组件使用3(JMenuBar,JMenu,JMenuItem)
- Swing超基础学习总结——5、菜单(JMenu、JMenuBar、JMenuItem)
- JComboBox,JList
- JMenuBar 和 Jmenu的使用
- jlist 和jcomboBox
- javax.swing.JMenuBar JMenu 以及事件响应
- java中JMenuBar和JMenu结合使用
- javax.swing.JMenuBar JMenu 以及事件响应
- java 中 JComboBox,JList,JScrollPane的用法
- JMenuBar
- Jmenu
- JMenu
- JMenu
- JMenu
- 列表框JList和组合列表框JComboBox
- 购买二手房为了少纳税签下了“阴阳合同”,明年将坐牢!
- EasyDMA和PPI学习
- 本地仓库关联到远程仓库中
- Java实现内存可见性的两种方法比较:synchronized 和 Volatile以及涉及到锁的剖析
- 微信小程序项目实例
- 关于JMenuBAr,JMenu,JMenuItem,JList,JComboBox
- python导入中文命名的文件
- 一致性哈希算法原理
- 机器学习概貌
- 数据结构---树 总结
- 谷歌元老 施密特(搜索广告-AI, 社交网络)隐退
- 常用的设计模式
- Visio实现箭头反向
- Java基本语法