黑马程序员技术交流社区
标题:
关于图形化界面的问题
[打印本页]
作者:
沈艳南
时间:
2013-5-12 00:35
标题:
关于图形化界面的问题
本帖最后由 沈艳南 于 2013-5-13 21:49 编辑
想要实现一个获取电脑中各个盘符下的文件名, 把文件名列在多行文本中,当输入的盘符不在时候有对话框提示,写了下面的程序 不知道问题出现在哪 请大神帮忙调试.
import java.awt.*;
import java.awt.event.*;
import java.io.*;
public class MyFrame {
public static void main(String[] args) {
new FrameDemo();
}
}
class FrameDemo{
FrameDemo(){
init();
}
/**/
//建立窗体组件.
private Frame f;
//建立按钮组件.
private Button but;
//建立文本框组件.
private TextField text;
//建立多行文本组件.
private TextArea ta;
//建立对话框组件.
private Dialog dlg;
//建立标签组件.
private Label dlb;
//按钮
private Button dbut;
//建立方法对以上组件进行初始化.
private void init(){
f = new Frame("我的文件列表窗口");
f.setLayout(null);
f.setBounds(200, 200, 700, 500);
//frame.setBackground(Color.GRAY);
f.setVisible(true);
//按钮初始化
but = new Button("转到");
f.add(but);
but.setBounds(400,50,50,30);
myEvent();
//初始化文本框.
text = new TextField();
text.setBounds(50, 50, 300, 30);
f.add(text);
//初始化多行文本.
ta = new TextArea();
f.add(ta);
ta.setBounds(30, 100, 450, 230);
//对话框初始化.
dlg = new Dialog(f);
dlb = new Label();
dbut = new Button("确定");
dlg.add(dlb);
dlg.add(dbut);
dlg.setLayout(null);
dlg.setBounds(400,300,300,300);
//dlg.setVisible(false);
//初始化标签
dlb.setBounds(80,50,200,100);
//按钮初始化
dbut.setBounds(50,50,30,30);
}
//事件的监听器.
private void myEvent(){
f.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e){
System.exit(0);
}
});
//按钮的事件监听器.
but.addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent e){
//System.out.println("sss");
//通过getText获取到了文本中输入的内容.
myList();
}
});
//按钮确定事件.
dbut.addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent e){
text.setText("");
dlg.setVisible(false);
}
});
dbut.addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent e){
text.setText("");
dlg.setVisible(false);
}
});
text.addKeyListener(new KeyAdapter() {
public void keyPressed(KeyEvent e){
//如何判断按下的是回车键,KeyEvent对象提供的方法, getKeyCode
if(e.getKeyCode()==KeyEvent.VK_ENTER){
myList();
}
}
});
dlg.addWindowListener(new WindowAdapter() {
public void windowClosing (WindowEvent e){
text.setText("");
dlg.setVisible(false);
}
});
}
public void myList(){
String str_Text = text.getText();
//System.out.println(str_Text);
File f = new File(str_Text);
String[] files = f.list();
//System.out.println(files);
if(!f.exists()){
dlb.setText("您输入的路径不存在,请从新输入");
dlg.setVisible(true);
return;
}
ta.setText("");
for(String s:files){
//System.out.println(s);
ta.append(s+"\r\n");
}
}
}
作者:
花开花落总相似
时间:
2013-5-12 06:52
你的代码给你给了半天 发现太乱了 还不如在写一个 就又重新写了一个 发到这上面 排序有点问题 你将就着看一下
import java.awt.*; //导包
import java.io.*;
import java.awt.event.*;
public class DemoDriSwap{
private Frame f = null;
private Button b = null;
private TextArea ta1 = null;
private TextField tf = null;
private Label l = null;
private Dialog dl = null;
private Button b1 = null;
//private ta2 = null;
DemoDriSwap(){
init();
}
//下面是初始化的内容
public void init(){
f = new Frame("my frame");
b = new Button("转到");
ta1 = new TextArea();
tf = new TextField();
l = new Label ();
dl = new Dialog(f,"提示信息",true);
b1 = new Button("确定");
f.setLayout(new FlowLayout());
f.setBounds(300,200,500,400);
dl.setBounds(400,300,300,100);
dl.setLayout(new FlowLayout());
f.add(tf);
f.add(b);
f.add(ta1);
tf.setColumns(40);
ta1.setColumns(55);
ta1.setRows(20);
f.setVisible(true);
enent();
}
public void enent(){
f.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.exit(0);
}
});
dl.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
dl.setVisible(false);
}
});
b1.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
System.exit(0);
}
});
b.addActionListener(new ActionListener(){
String s = null;
//ta.setText("");
public void actionPerformed(ActionEvent e){
s = tf.getText();
ta1.setText("");
File fipath = new File(s);
if( fipath.exists()&& fipath.isDirectory()){
String [] array = fipath.list();
for (String a: array){
ta1.append(a+"\r\n");
}
}else{
l.setText("您输入的"+s+"路径有误,请检查后重新输入。");
dl.add(l);
dl.add(b1);
dl.setVisible(true);
}
tf.setText("");
}
});
}
public static void main(String[]args){
new DemoDriSwap();
}
}
作者:
沈艳南
时间:
2013-5-12 11:04
花开花落总相似 发表于 2013-5-12 06:52
你的代码给你给了半天 发现太乱了 还不如在写一个 就又重新写了一个 发到这上面 排序有点问题 你将就 ...
谢谢啊 你给的答案我看懂了 看来我是应该注意一下 是有点乱
作者:
Sword
时间:
2013-5-12 18:53
如果问题未解决,请继续追问,如果问题解决了,请点击你的帖子下面的"编辑"重新编辑帖子,将分类改为“已解决”,谢谢合作!
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2