import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseMotionAdapter;
import java.io.FileOutputStream;
import java.util.*;
import java.text.*;
public class TabbedPanelTest extends JFrame implements ActionListener{
String[] bookname={"File","View","Keep","keep1"};
JTabbedPane tab = new JTabbedPane();
JTextField tf = new JTextField();
boolean changed = false;
boolean haveName = false;
File file=null;
JMenu Xmenu = new JMenu("文件");
JMenuItem itemX1 = new JMenuItem("新建");
JMenuItem itemX2 = new JMenuItem("打开");
JMenuItem itemX3 = new JMenuItem("保存");
JMenuItem itemX4 = new JMenuItem("退出");
JMenu Ymenu = new JMenu("编辑");
JMenuItem itemY1 = new JMenuItem("剪切");
JMenuItem itemY2 = new JMenuItem("复制");
JMenuItem itemY3 = new JMenuItem("粘贴");
JMenuItem itemY4 = new JMenuItem("全选");
public TabbedPanelTest(){
JTable table = new JTable();
JTextField textField = new JTextField("文本输入框");
JPanel panel=new JPanel();
panel.add(table);
panel.add(textField);
tab.add(bookname[0],panel);
tab.add(bookname[1],new JButton());
tab.add(bookname[2],new JTextField());
Xmenu.add(itemX1);
Xmenu.add(itemX2);
Xmenu.add(itemX3);
Xmenu.add(itemX4);
Ymenu.add(itemY1);
Ymenu.add(itemY2);
Ymenu.add(itemY3);
Ymenu.add(itemY4);
JMenuBar menubar = new JMenuBar();
menubar.add(Xmenu);
menubar.add(Ymenu);
setJMenuBar(menubar);
itemX2.addActionListener(this);
Container cp = getContentPane();
cp.add(tab,BorderLayout.CENTER);
cp.add(tf,BorderLayout.SOUTH);
//显示当前坐标
tab.addMouseMotionListener(new MouseMotionAdapter()
{
public void mouseMoved(MouseEvent e)
{
int x=e.getX();
int y=e.getY();
String s="当前坐标为:"+x+','+y;
tf.setText(s);
}
});
tf.addMouseMotionListener(new MouseMotionAdapter()
{
public void mouseMoved(MouseEvent e)
{
int x=e.getX();
int y=e.getY();
String s="当前坐标为:"+x+','+y;
tf.setText(s);
}
});
//显示标签上的文字
tab.addChangeListener(new ChangeListener(){public void stateChanged(ChangeEvent e)
{tf.setText(tab.getTitleAt(tab.getSelectedIndex()));}
}
);
}
public void actionPerformed(ActionEvent e)
{
Object obj;
obj = e.getSource();
if(obj == itemX2)
doOpen();
}
void doOpen(){
int select,flag;
File tmpfile = null;
ExampleFileFilter filter;
JFileChooser chooser;
FileInputStream fin;
byte buf[];
if(changed){
select = JOptionPane.showConfirmDialog(this, "aa");
switch (select){
case JOptionPane.YES_OPTION:
break;
case JOptionPane.NO_OPTION:
flag = 1;
break;
default:
flag = 0;
break;
}
}
else{flag = 1;}
if(flag == 1){
changed = false;
filter = new ExampleFileFilter();
filter.addExtension("dd");
filter.setDescription("");
if(file != null)
chooser = new JFileChooser(file.getPath());
else
chooser = new JFileChooser();
chooser.setFileFilter(filter);
select = chooser.showOpenDialog(this);
if(select == JFileChooser.APPROVE_OPTION){
tmpfile = chooser.getSelectedFile();
try{
fin = new FileInputStream(tmpfile);
buf = new byte[(int)tmpfile.length()];
fin.read(buf);
fin.close();
//text.setText(new String(buf));
changed = false;
haveName = true;
file = tmpfile;
setTitle(file.getName());
}
catch(FileNotFoundException e)
{JOptionPane.showMessageDialog(this, "ss");}
catch(IOException e)
{JOptionPane.showMessageDialog(this, "ff");}
}
}
}
/**
* @param args
*/
public static void main(String[] args) {
TabbedPanelTest tpt = new TabbedPanelTest();
tpt.setTitle("");
tpt.setExtendedState(JFrame.MAXIMIZED_BOTH);
tpt.show();
}}基本介绍一下,顶部是菜单,下面是JTabbedPane,问题是顶部菜单中文件的打开功能不能实现,其实现在也就这么一个功能,大家看一下吧,谢谢了 谢谢 在线等
import java.awt.event.ActionListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseMotionAdapter;
import java.io.FileOutputStream;
import java.util.*;
import java.text.*;
public class TabbedPanelTest extends JFrame implements ActionListener{
String[] bookname={"File","View","Keep","keep1"};
JTabbedPane tab = new JTabbedPane();
JTextField tf = new JTextField();
boolean changed = false;
boolean haveName = false;
File file=null;
JMenu Xmenu = new JMenu("文件");
JMenuItem itemX1 = new JMenuItem("新建");
JMenuItem itemX2 = new JMenuItem("打开");
JMenuItem itemX3 = new JMenuItem("保存");
JMenuItem itemX4 = new JMenuItem("退出");
JMenu Ymenu = new JMenu("编辑");
JMenuItem itemY1 = new JMenuItem("剪切");
JMenuItem itemY2 = new JMenuItem("复制");
JMenuItem itemY3 = new JMenuItem("粘贴");
JMenuItem itemY4 = new JMenuItem("全选");
public TabbedPanelTest(){
JTable table = new JTable();
JTextField textField = new JTextField("文本输入框");
JPanel panel=new JPanel();
panel.add(table);
panel.add(textField);
tab.add(bookname[0],panel);
tab.add(bookname[1],new JButton());
tab.add(bookname[2],new JTextField());
Xmenu.add(itemX1);
Xmenu.add(itemX2);
Xmenu.add(itemX3);
Xmenu.add(itemX4);
Ymenu.add(itemY1);
Ymenu.add(itemY2);
Ymenu.add(itemY3);
Ymenu.add(itemY4);
JMenuBar menubar = new JMenuBar();
menubar.add(Xmenu);
menubar.add(Ymenu);
setJMenuBar(menubar);
itemX2.addActionListener(this);
Container cp = getContentPane();
cp.add(tab,BorderLayout.CENTER);
cp.add(tf,BorderLayout.SOUTH);
//显示当前坐标
tab.addMouseMotionListener(new MouseMotionAdapter()
{
public void mouseMoved(MouseEvent e)
{
int x=e.getX();
int y=e.getY();
String s="当前坐标为:"+x+','+y;
tf.setText(s);
}
});
tf.addMouseMotionListener(new MouseMotionAdapter()
{
public void mouseMoved(MouseEvent e)
{
int x=e.getX();
int y=e.getY();
String s="当前坐标为:"+x+','+y;
tf.setText(s);
}
});
//显示标签上的文字
tab.addChangeListener(new ChangeListener(){public void stateChanged(ChangeEvent e)
{tf.setText(tab.getTitleAt(tab.getSelectedIndex()));}
}
);
}
public void actionPerformed(ActionEvent e)
{
Object obj;
obj = e.getSource();
if(obj == itemX2)
doOpen();
}
void doOpen(){
int select,flag;
File tmpfile = null;
ExampleFileFilter filter;
JFileChooser chooser;
FileInputStream fin;
byte buf[];
if(changed){
select = JOptionPane.showConfirmDialog(this, "aa");
switch (select){
case JOptionPane.YES_OPTION:
break;
case JOptionPane.NO_OPTION:
flag = 1;
break;
default:
flag = 0;
break;
}
}
else{flag = 1;}
if(flag == 1){
changed = false;
filter = new ExampleFileFilter();
filter.addExtension("dd");
filter.setDescription("");
if(file != null)
chooser = new JFileChooser(file.getPath());
else
chooser = new JFileChooser();
chooser.setFileFilter(filter);
select = chooser.showOpenDialog(this);
if(select == JFileChooser.APPROVE_OPTION){
tmpfile = chooser.getSelectedFile();
try{
fin = new FileInputStream(tmpfile);
buf = new byte[(int)tmpfile.length()];
fin.read(buf);
fin.close();
//text.setText(new String(buf));
changed = false;
haveName = true;
file = tmpfile;
setTitle(file.getName());
}
catch(FileNotFoundException e)
{JOptionPane.showMessageDialog(this, "ss");}
catch(IOException e)
{JOptionPane.showMessageDialog(this, "ff");}
}
}
}
/**
* @param args
*/
public static void main(String[] args) {
TabbedPanelTest tpt = new TabbedPanelTest();
tpt.setTitle("");
tpt.setExtendedState(JFrame.MAXIMIZED_BOTH);
tpt.show();
}}基本介绍一下,顶部是菜单,下面是JTabbedPane,问题是顶部菜单中文件的打开功能不能实现,其实现在也就这么一个功能,大家看一下吧,谢谢了 谢谢 在线等
使用JDK1.6的FileNameExtensionFilter类来取代你的ExampleFileFilter类)。
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import java.util.*;
import java.text.*;
import javax.swing.*;
import javax.swing.event.*;
import javax.swing.filechooser.*;public class TabbedPanelTest extends JFrame implements ActionListener{
String[] bookname={"File","View","Keep","keep1"};
JTabbedPane tab = new JTabbedPane();
JTextField tf = new JTextField();
JTextArea textArea=null;
boolean changed = false;
boolean haveName = false;
File file=null;
JMenu Xmenu = new JMenu("文件");
JMenuItem itemX1 = new JMenuItem("新建");
JMenuItem itemX2 = new JMenuItem("打开");
JMenuItem itemX3 = new JMenuItem("保存");
JMenuItem itemX4 = new JMenuItem("退出"); JMenu Ymenu = new JMenu("编辑");
JMenuItem itemY1 = new JMenuItem("剪切");
JMenuItem itemY2 = new JMenuItem("复制");
JMenuItem itemY3 = new JMenuItem("粘贴");
JMenuItem itemY4 = new JMenuItem("全选");
public TabbedPanelTest(){
JTable table = new JTable();
textArea= new JTextArea("文本输入框",6,60);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);JPanel panel=new JPanel();
panel.add(table);
panel.add(textArea);
tab.add(bookname[0],panel);
tab.add(bookname[1],new JButton());
tab.add(bookname[2],new JTextField()); Xmenu.add(itemX1);
Xmenu.add(itemX2);
Xmenu.add(itemX3);
Xmenu.add(itemX4);
Ymenu.add(itemY1);
Ymenu.add(itemY2);
Ymenu.add(itemY3);
Ymenu.add(itemY4);
JMenuBar menubar = new JMenuBar();
menubar.add(Xmenu);
menubar.add(Ymenu);
setJMenuBar(menubar); itemX2.addActionListener(this);
Container cp = getContentPane();
cp.add(tab,BorderLayout.CENTER);
cp.add(tf,BorderLayout.SOUTH);
//显示当前坐标
tab.addMouseMotionListener(new MouseMotionAdapter()
{
public void mouseMoved(MouseEvent e)
{
int x=e.getX();
int y=e.getY();
String s="当前坐标为:"+x+','+y;
tf.setText(s);
}
});
tf.addMouseMotionListener(new MouseMotionAdapter()
{
public void mouseMoved(MouseEvent e)
{
int x=e.getX();
int y=e.getY();
String s="当前坐标为:"+x+','+y;
tf.setText(s);
}
});
//显示标签上的文字
tab.addChangeListener(new ChangeListener(){public void stateChanged(ChangeEvent e)
{tf.setText(tab.getTitleAt(tab.getSelectedIndex()));}
}
);
}
public void actionPerformed(ActionEvent e)
{
Object obj;
obj = e.getSource();
if(obj == itemX2)
doOpen();
}
void doOpen(){
int select,flag=1;
File tmpfile = null;
FileNameExtensionFilter filter;
JFileChooser chooser;
FileInputStream fin;
byte buf[];
if(changed){
select = JOptionPane.showConfirmDialog(this, "aa");
switch (select){
case JOptionPane.YES_OPTION:
break;
case JOptionPane.NO_OPTION:
flag = 1;
break;
default:
flag = 0;
break;
}
}
else{flag = 1;}
if(flag == 1){
changed = false;
filter = new FileNameExtensionFilter("所有的.txt文件", "txt");
//filter.addExtension("dd");
//filter.setDescription("");
if(file != null)
chooser = new JFileChooser(file.getPath());
else
chooser = new JFileChooser();
chooser.setFileFilter(filter);
select = chooser.showOpenDialog(this);
if(select == JFileChooser.APPROVE_OPTION){
tmpfile = chooser.getSelectedFile(); try{
fin = new FileInputStream(tmpfile);
buf = new byte[(int)tmpfile.length()];
fin.read(buf);
fin.close();
textArea.setText(new String(buf));
changed = false;
haveName = true;
file = tmpfile;
setTitle(file.getName());
}
catch(FileNotFoundException e)
{JOptionPane.showMessageDialog(this, "ss");}
catch(IOException e)
{JOptionPane.showMessageDialog(this, "ff");}
}
}
}
/**
* @param args
*/
public static void main(String[] args) {
TabbedPanelTest tpt = new TabbedPanelTest(); tpt.setTitle("");
tpt.setExtendedState(JFrame.MAXIMIZED_BOTH); tpt.show();
} }
(已把你的ExampleFileFilter注释掉了)import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseMotionAdapter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;import javax.swing.JButton;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTabbedPane;
import javax.swing.JTable;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
public class TabbedPanelTest extends JFrame implements ActionListener{
String[] bookname={"File","View","Keep","keep1"};
JTabbedPane tab = new JTabbedPane();
JTextField tf = new JTextField();
JTextArea jta = new JTextArea(20,30); //中间的显示区 boolean changed = false;
boolean haveName = false;
File file=null; JMenu Xmenu = new JMenu("文件");
JMenuItem itemX1 = new JMenuItem("新建");
JMenuItem itemX2 = new JMenuItem("打开");
JMenuItem itemX3 = new JMenuItem("保存");
JMenuItem itemX4 = new JMenuItem("退出"); JMenu Ymenu = new JMenu("编辑");
JMenuItem itemY1 = new JMenuItem("剪切");
JMenuItem itemY2 = new JMenuItem("复制");
JMenuItem itemY3 = new JMenuItem("粘贴");
JMenuItem itemY4 = new JMenuItem("全选");
public TabbedPanelTest(){
JTable table = new JTable();
JTextField textField = new JTextField("文本输入框");
JPanel panel=new JPanel();
panel.add(table);
panel.add(textField);
tab.add(bookname[0],panel);
tab.add(bookname[1],new JButton());
tab.add(bookname[2],new JTextField()); Xmenu.add(itemX1);
Xmenu.add(itemX2);
Xmenu.add(itemX3);
Xmenu.add(itemX4);
Ymenu.add(itemY1);
Ymenu.add(itemY2);
Ymenu.add(itemY3);
Ymenu.add(itemY4);
JMenuBar menubar = new JMenuBar();
menubar.add(Xmenu);
menubar.add(Ymenu);
setJMenuBar(menubar); itemX2.addActionListener(this);
Container cp = getContentPane();
cp.add(tab,BorderLayout.NORTH);
cp.add(jta,BorderLayout.CENTER);
cp.add(tf,BorderLayout.SOUTH);
// 显示当前坐标
tab.addMouseMotionListener(new MouseMotionAdapter()
{
public void mouseMoved(MouseEvent e)
{
int x=e.getX();
int y=e.getY();
String s="当前坐标为:"+x+','+y;
tf.setText(s);
}
});
tf.addMouseMotionListener(new MouseMotionAdapter()
{
public void mouseMoved(MouseEvent e)
{
int x=e.getX();
int y=e.getY();
String s="当前坐标为:"+x+','+y;
tf.setText(s);
}
});
//显示标签上的文字
tab.addChangeListener(new ChangeListener(){public void stateChanged(ChangeEvent e)
{tf.setText(tab.getTitleAt(tab.getSelectedIndex()));}
}
);
}
public void actionPerformed(ActionEvent e)
{
Object obj;
obj = e.getSource();
if(obj == itemX2)
doOpen();
}
void doOpen(){
int select,flag = 1;
File tmpfile = null;
//ExampleFileFilter filter;
JFileChooser chooser;
FileInputStream fin;
byte buf[];
if(changed){
select = JOptionPane.showConfirmDialog(this, "aa");
switch (select){
case JOptionPane.YES_OPTION:
break;
case JOptionPane.NO_OPTION:
flag = 1;
break;
default:
flag = 0;
break;
}
}else{
flag = 1;
}
if(flag == 1){
changed = false;
//filter = new ExampleFileFilter();
//filter.addExtension("dd");
//filter.setDescription("");
if(file != null)
chooser = new JFileChooser(file.getPath());
else
chooser = new JFileChooser();
//chooser.setFileFilter(filter);
select = chooser.showOpenDialog(this);
if(select == JFileChooser.APPROVE_OPTION){
tmpfile = chooser.getSelectedFile();
try{
fin = new FileInputStream(tmpfile);
buf = new byte[(int)tmpfile.length()];
fin.read(buf);
fin.close();
// text.setText(new String(buf));
changed = false;
haveName = true;
file = tmpfile;
jta.setText(new String(buf)); // i/o之后就把内容写到中间的显示区中
setTitle(file.getName());
}
catch(FileNotFoundException e)
{JOptionPane.showMessageDialog(this, "ss");}
catch(IOException e)
{JOptionPane.showMessageDialog(this, "ff");}
}
}
}
/**
* @param args
*/
public static void main(String[] args) {
TabbedPanelTest tpt = new TabbedPanelTest(); tpt.setTitle("");
tpt.setExtendedState(JFrame.MAXIMIZED_BOTH); tpt.show();
} }