📄 mianframe.java
字号:
JTextPane textpane=currentframe.getTextPane();
JFileChooser filechooser=new JFileChooser("E:\\我的地盘\\我的文件\\java");
int result=filechooser.showSaveDialog(topframe);
File file=null;
String filename;
FileOutputStream fileoutput=null;
if(result==filechooser.APPROVE_OPTION){
file=filechooser.getSelectedFile();
}
if(result==filechooser.CANCEL_OPTION){};
try {
fileoutput=new FileOutputStream(file);
} catch (FileNotFoundException e1) {
e1.printStackTrace();
}
Document docs=textpane.getDocument();
String content="";
try {
content = docs.getText(0,docs.getLength());//与textarea里面的gettext方法的参数不一样。
} catch (BadLocationException e1) {
e1.printStackTrace();
}
try {
fileoutput.write(content.getBytes());
} catch (IOException e1) {
e1.printStackTrace();
}
}
if(command.equals("about this programe")){
JOptionPane.showMessageDialog(topframe,
aboutmsg,"about this programe", JOptionPane.INFORMATION_MESSAGE);
}
if(command.equals("open help window")){
JInternalFrame help=new Helpframe();
desktop.add(help);
try{
help.setVisible(true);
help.setSelected(true);
}catch(Exception e1){
e1.printStackTrace();
}
}
if(command.equals("tree structure")){
demotree();
}
if(command.equals("slider")){
demoslider();
}
if(command.equals("table structure")){
demotable();
}
if(command.equals("password"))
{demopassword();}
}
}
public void demoslider(){
JInternalFrame slider=new domoslider();
topframe.add(slider);
slider.setVisible(true);
try {
slider.setSelected(true);
} catch (PropertyVetoException e) {
e.printStackTrace();
}
}
class domoslider extends JInternalFrame{
public domoslider(){
super("demo slider structure",true,true,true,true);
JSlider slider=new JSlider();
this.add(slider);
}
}
public void demotable(){
JInternalFrame jtable=new demotable();
desktop.add(jtable);
try{
jtable.setVisible(true);
jtable.setSelected(true);
}
catch(Exception e){
e.printStackTrace();
}
}
class demotable extends JInternalFrame{
public demotable(){
super("demo table structure",true,true,true,true);
TableModel tm=new AbstractTableModel(){
String data[][]={
{"chenbiao","1","2","3"},
{"chenbin","4","5","6"},
{"chensan","7","8","9"}
};
String head[]={"name","chinese","engilsh","math"};
public int getColumnCount(){
return head.length;
}
public int getRowCount(){
return data.length;
}
public String getColumnName(int col){
return head[col];
}
public Object getValueAt(int row,int col){
return data[row][col];
}
};
JTable jt=new JTable(tm);
JScrollPane jsp=new JScrollPane(jt);
this.getContentPane().add(jsp);
this.setSize(300,200);
this.setLocation(150,20);
}
}
public void demopassword(){
demopassword password=new demopassword(topframe);
password.show();
}
class demopassword extends JDialog{
char[] password;
public demopassword(JFrame f){
super(f,"demo password",false);//false and true is diffrent.
this.setBounds(250,200,250,200);
JPanel jpane=new JPanel();
jpane.setLayout(new GridLayout(4,2,2,2));
JLabel lname=new JLabel("name:");
JLabel lpassword=new JLabel("Password:");
final JLabel lresult=new JLabel("");
JLabel lnull1=new JLabel("hint:the password is");
JLabel lnull2=new JLabel("java swing");
JTextField textname=new JTextField();
final JPasswordField p=new JPasswordField();
JButton jbutton=new JButton("login");
jbutton.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
password=p.getPassword();
String passwordstr=new String(password);
int itf=passwordstr.compareTo("javaswing");
if(itf!=0){
lresult.setText("access deny@");
}
else lresult.setText("pass,^_^");
}
});
jpane.add(lname);
jpane.add(textname);
jpane.add(lpassword);
jpane.add(p);
jpane.add(lnull1);
jpane.add(lnull2);
jpane.add(lresult);
jpane.add(jbutton);
this.getContentPane().add(jpane);
}
}
public void demotree(){
JInternalFrame jtree=new demotree();
desktop.add(jtree);
try{
jtree.setVisible(true);
jtree.setSelected(true);
}catch(Exception e){
e.printStackTrace();
}
}
class demotree extends JInternalFrame{
public demotree(){
super("demo tree structure",true,true,true,true);
DefaultMutableTreeNode manager;
DefaultMutableTreeNode leader;
DefaultMutableTreeNode engineer;
DefaultMutableTreeNode top=new DefaultMutableTreeNode("empolyee list");
top.add(manager=new DefaultMutableTreeNode("manager"));
top.add(leader=new DefaultMutableTreeNode("leader"));
top.add(engineer=new DefaultMutableTreeNode("engineer"));
manager.add(new DefaultMutableTreeNode("chenbiao"));
manager.add(new DefaultMutableTreeNode("chenbin"));
manager.add(new DefaultMutableTreeNode("chensan"));
leader.add(new DefaultMutableTreeNode("chenmaozhou"));
leader.add(new DefaultMutableTreeNode("chenhongxue"));
engineer.add(new DefaultMutableTreeNode("chenming"));
engineer.add(new DefaultMutableTreeNode("chenli"));
JTree tree=new JTree(top);
JScrollPane treescroll=new JScrollPane(tree);
treescroll.setBackground(tree.getBackground());
this.getContentPane().add(treescroll);
this.setSize(250,200);
this.setLocation(200,20);
}
}
class filefilter extends FileFilter{
String ext;
public filefilter(String ext){
this.ext=ext;
}
public boolean accept(File file) {
if(file.isDirectory())
return true;
String filename=file.getName();
int index=filename.lastIndexOf('.');
if(index>0&&index<filename.length()-1){
String extension=filename.substring(index+1).toLowerCase();
if(ext==extension){
return true;
}
}
return false;
}
public String getDescription() {
if(ext.equals("txt"))
return "txt file(*.txt)";
if(ext.equals("doc"))
return "doc file(*.doc)";
return "suoyouwenjian";
}
}
class picturefilter extends FileFilter{
String ext;
public picturefilter(String ext){
this.ext=ext;
}
public boolean accept(File file) {
if(file.isDirectory())
return true;
String filename=file.getName();
int index=filename.lastIndexOf('.');
if(index>0&&index<filename.length()-1){
String extension=filename.substring(index+1).toLowerCase();
if(extension.equals(ext))
return true;
}
return false;
}
public String getDescription() {
if(ext.equals("jpg"))
return "jpg file (所有jpg图片)";
if(ext.equals("gif"))
return "gif file (所有gif图片)";
return " ";
}
}
static int count=0;
static int offset=10;
class Newframe extends JInternalFrame{//为什么加了internal就不能显示出出了呢?因为internalframe是轻型组建,
//它必须要显示在最上层组建上,比如说jframe上面,一般把它显示在desktoppane上面!
JTextPane textpane=null;
MyUndoManager myundo;
public Newframe(){
super("",true,true,true,true);
this.setTitle("untitled document"+(count++));
this.setSize(new Dimension(900,500));
JPanel top=new JPanel();
top.setBorder(new EmptyBorder(5,10,10,10));
top.setLayout(new BorderLayout());
textpane=new JTextPane();
textpane.setBorder(new EmptyBorder(0,5,0,5));
//textpane.gett
myundo=new MyUndoManager();
textpane.getDocument().addUndoableEditListener(myundo);
//textpane.getStyledDocument();
JScrollPane textscrollbar=new JScrollPane(textpane,JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,
JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
top.add(textscrollbar,BorderLayout.CENTER);
this.getContentPane().add(top);
//this.setContentPane(top);
this.setLocation(offset*count,offset*count);
}
public UndoManager getUndoManager(){
return myundo;
}
public JTextPane getTextPane(){
return textpane;
}
}
class MyUndoManager extends UndoManager{
public void undoableEditHappened(UndoableEditEvent e){
Newframe currentframe=(Newframe)desktop.getSelectedFrame();
if(currentframe==null){return;}
UndoManager undo=currentframe.getUndoManager();
undo.addEdit(e.getEdit());
new ActionSet("undo",null).updateUndoState();
new ActionSet("redo",null).updateRedoState();
}
}
public JMenu buildalignmenu(){
JRadioButtonMenuItem al;
JRadioButtonMenuItem ac;
JRadioButtonMenuItem ar;
JMenu malign=new JMenu("Align");
al=new JRadioButtonMenuItem("align left");
ac=new JRadioButtonMenuItem("align center");
ar=new JRadioButtonMenuItem("align right");
SimpleAttributeSet attrset=new SimpleAttributeSet();//根本就没有用到吗?要来干什么呢?
al.addItemListener(new Handleitemevent("left",attrset));
ac.addItemListener(new Handleitemevent("center",attrset));
ar.addItemListener(new Handleitemevent("right",attrset));
ButtonGroup buttongroup=new ButtonGroup();
buttongroup.add(al);
buttongroup.add(ac);
buttongroup.add(ar);
JCheckBoxMenuItem demo1=new JCheckBoxMenuItem("demo1",true);
JCheckBoxMenuItem demo2=new JCheckBoxMenuItem("demo2",false);
JCheckBoxMenuItem demo3=new JCheckBoxMenuItem("demo3",false);
malign.add(al);
malign.add(ac);
malign.add(ar);
malign.addSeparator();
malign.add(demo1);
malign.add(demo2);
malign.add(demo3);
return malign;
}
class Handleitemevent implements ItemListener{
String align;
SimpleAttributeSet attrset;
Handleitemevent(String align,SimpleAttributeSet attrset){
this.align=align;
this.attrset=attrset;
}
public void itemStateChanged(ItemEvent e) {
Newframe current=(Newframe)desktop.getSelectedFrame();
JTextPane pane=current.getTextPane();
StyledDocument docs=pane.getStyledDocument();
int offset=pane.getSelectionStart();
int end=pane.getSelectionEnd();
int selected_length=end-offset;
if(current==null){return;}
if(align.equals("left")){
StyleConstants.setAlignment(attrset, StyleConstants.ALIGN_LEFT);
}
if(align.equals("right")){
StyleConstants.setAlignment(attrset, StyleConstants.ALIGN_RIGHT);
}
if(align.equals("center")){
StyleConstants.setAlignment(attrset, StyleConstants.ALIGN_CENTER);
}
docs.setParagraphAttributes(offset,selected_length,attrset,true);
}
}
public void buildtoolbar(){
toolbar=new JToolBar("陈彪");
toolbar.setFloatable(true);
String[] newfunctions={"new"};
String[] newpics={"E:\\我的地盘\\我的文件\\java\\java7\\linzhiyang\\Images\\ID_FILE_NEW.gif"};
buildtoolbutton(toolbar,newfunctions,newpics);
//toolbar.addSeparator();
String[] openfunctions={"open"};
String[] openpics={"E:\\我的地盘\\我的文件\\java\\java7\\linzhiyang\\Images\\ID_FILE_OPEN.gif"};
buildtoolbutton(toolbar,openfunctions,openpics);
//toolbar.addSeparator();
String[] savefunctions={"save"};
String[] savepics={"E:\\我的地盘\\我的文件\\java\\java7\\linzhiyang\\Images\\ID_FILE_SAVE.gif"};
buildtoolbutton(toolbar,savefunctions,savepics);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -