📄 mapchoosedialog.java
字号:
package pp.scence;
import java.awt.*;
import java.applet.*;
import java.awt.event.*;
import java.io.*;
import javax.swing.*;
import javax.swing.tree.*;
import like.graphics.*;
import like.scence2D.*;
public class MapChooseDialog extends Dialog
implements ActionListener, MouseListener
{
Scence scence;
public boolean ifConfirm = false;
JButton confirmButton,exitButton;
JScrollPane scrollPane;
public JTree tree;
Image backGround;
ImageIcon confimIcon_0,confimIcon_1;
ImageIcon exitIcon_0,exitIcon_1;
public MapChooseDialog(Scence scence)
{
super(scence,"选择地图",true);
this.scence = scence;
this.setSize(506,402);
this.setLocation(147,99);
//this.setUndecorated(true);
ImageLoader loader = new ImageLoader(scence,"res\\common\\choose.gif",true);
backGround = loader.getImage();
//按纽
confimIcon_1 = (ImageIcon)(scence.getHtpros().get("confirm_1"));
loader = new ImageLoader(scence,"res\\common\\exit.gif",true);
exitIcon_1 = new ImageIcon(loader.getImage());
this.setLayout(null);
confirmButton = new JButton(confimIcon_1);
this.add(confirmButton);
confirmButton.setBounds(143,332,108,37);
confirmButton.addMouseListener(this);
confirmButton.addActionListener(this);
exitButton = new JButton(exitIcon_1);
this.add(exitButton);
exitButton.setBounds(253,332,108,37);
exitButton.addMouseListener(this);
exitButton.addActionListener(this);
//树型选择
File file = new File("maps");
MyNode root=new MyNode(file);//创建树根节点
File [] files = file.listFiles();
for(int i=0;i<files.length;i++)
{
MyNode node = new MyNode(files[i]);
root.add(node);
if(files[i].isDirectory())
{
File [] t =files[i].listFiles();
for(int j=0;j<t.length;j++)
{
node.add(new MyNode(t[j]));
}
}
}
tree=new JTree(root);//以根节点为参数创建一个树对象
DefaultTreeCellRenderer cellRenderer
= (DefaultTreeCellRenderer)tree.getCellRenderer();
cellRenderer.setLeafIcon(new ImageIcon("res\\Icon\\leaf.gif"));
cellRenderer.setOpenIcon(new ImageIcon("res\\Icon\\open.gif"));
cellRenderer.setClosedIcon(new ImageIcon("res\\Icon\\close.gif"));
scrollPane = new JScrollPane();
scrollPane.setViewportView(tree);
this.add(this.scrollPane);
scrollPane.setBounds(261,124,209,199);
}
public void update(Graphics g)
{
paint(g);
}
public void paint(Graphics g)
{
g.drawImage(this.backGround,0,25,this);
this.scrollPane.repaint();
this.confirmButton.repaint();
this.exitButton.repaint();
}
public static File showMapChooseDialog(Scence scence)
{
MapChooseDialog me = new MapChooseDialog(scence);
me.setVisible(true);
if(me.ifConfirm)
{
return (File)(((MyNode)me.tree.getLastSelectedPathComponent()).getUserObject());
}
return null;
}
public void actionPerformed(ActionEvent e)
{
if(e.getSource().equals(confirmButton))
{this.ifConfirm = true;}
else if(e.getSource().equals(exitButton))
{this.ifConfirm = false;}
this.setVisible(false);
this.dispose();
}
public void mouseClicked(MouseEvent e)
{
}
public void mousePressed(MouseEvent e)
{
}
public void mouseReleased(MouseEvent e)
{
}
public void mouseEntered(MouseEvent e)
{
((AudioClip)(this.scence.getHtpros().get("enter"))).play();
/*if(confirmButton.equals(e.getSource()))
{
this.confirmButton.setIcon(this.confimIcon_1);
}
else if(exitButton.equals(e.getSource()))
{
this.exitButton.setIcon(this.exitIcon_1);
}*/
}
public void mouseExited(MouseEvent e)
{
/*if((JButton)e.getSource()==this.confirmButton)
{
this.confirmButton.setIcon(this.confimIcon_0);
}
else if((JButton)e.getSource()==this.exitButton)
{
this.exitButton.setIcon(this.exitIcon_0);
}*/
}
}
class MyNode extends DefaultMutableTreeNode
{
public MyNode(Object obj)
{
super(obj);
}
public String toString()
{
String str = ((File)getUserObject()).getName();
if(str.length()>4)
return str.substring(0,str.length()-4);
else return str;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -