java中JFrame按钮添加事件,选择路径放到文本框里面

作者&投稿:尉山 (若有异议请与网页底部的电邮联系)
java swing中如何在文本框中添加按钮~

这个用布局管理器实现不了,文字长度不能到button的后面,只有自己重写paint方法,配合insert使用

import java.io.*;
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
public class YFileChooser implements ActionListener{
JFrame frame=new JFrame("文件选择器实例");
JTabbedPane tabPane=new JTabbedPane();//选项卡布局
Container con=new Container();//布局1
Container con1=new Container();//布局2
JLabel label1=new JLabel("选择目录");
JLabel label2=new JLabel("选择文件");
JTextField text1=new JTextField();
JTextField text2=new JTextField();
JButton button1=new JButton("...");
JButton button2=new JButton("...");
JFileChooser jfc=new JFileChooser();//文件选择器
YFileChooser(){
jfc.setCurrentDirectory(new File("d:\\"));//文件选择器的初始目录定为d盘
//下面两行是取得屏幕的高度和宽度
double lx=Toolkit.getDefaultToolkit().getScreenSize().getWidth();
double ly=Toolkit.getDefaultToolkit().getScreenSize().getHeight();
frame.setLocation(new Point((int)(lx/2)-150,(int)(ly/2)-150));//设定窗口出现位置
frame.setSize(300,150);//设定窗口大小
frame.setContentPane(tabPane);//设置布局
//下面设定标签等的出现位置和高宽
label1.setBounds(10,10,70,20);
label2.setBounds(10,30,100,20);
text1.setBounds(80,10,120,20);
text2.setBounds(80,30,120,20);
button1.setBounds(210,10,50,20);
button2.setBounds(210,30,50,20);
button1.addActionListener(this);//添加事件处理
button2.addActionListener(this);//添加事件处理
con.add(label1);
con.add(label2);
con.add(text1);
con.add(text2);
con.add(button1);
con.add(button2);
con.add(jfc);
tabPane.add("目录/文件选择",con);//添加布局1
tabPane.add("暂无内容",con1);//添加布局2
frame.setVisible(true);//窗口可见
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//使能关闭窗口,结束程序
}
public void actionPerformed(ActionEvent e){//事件处理
if(e.getSource().equals(button1)){//判断触发方法的按钮是哪个
jfc.setFileSelectionMode(1);//设定只能选择到文件夹
int state=jfc.showOpenDialog(null);//此句是打开文件选择器界面的触发语句
if(state==1){
return;//撤销则返回
}
else{
File f=jfc.getSelectedFile();//f为选择到的目录
text1.setText(f.getAbsolutePath());
}
}
if(e.getSource().equals(button2)){
jfc.setFileSelectionMode(0);//设定只能选择到文件
int state=jfc.showOpenDialog(null);//此句是打开文件选择器界面的触发语句
if(state==1){
return;//撤销则返回
}
else{
File f=jfc.getSelectedFile();//f为选择到的文件
text2.setText(f.getAbsolutePath());
}
}
}
public static void main(String[] args) {
new YFileChooser();
}
}

无语了,这个破知道,提交代码不过,改成11,就成功了!代码提交中
你需要的方法在按钮事件方法中,有问题追问,good luck!
通过选中文件获得绝对路径,点确定读取文件
import java.awt.TextArea;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;

import javax.swing.Icon;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextField;

public class Test2 extends JFrame implements ActionListener {
JButton button;
JButton Select;
JButton btnOK;

JTextField textfield;
JPanel p;
JFileChooser fc = new JFileChooser();
TextArea area;

public Test2() {
p = new JPanel(); // 建立一个面板
this.getContentPane().add(p);// 把面板添加到框架
p.add(new JButton("文本"));// 把一个文本按钮添加到面板
textfield = new JTextField(10);
p.add(textfield); // 把一个文本框添加到面板
Select = new JButton("浏览");
p.add(Select); // 把一个浏览按钮添加到面板
Select.addActionListener(this);
btnOK = new JButton("确定");
p.add(btnOK);// 把一个确定按钮添加到面板
btnOK.addActionListener(this);
}

public void actionPerformed(ActionEvent e) {
// 当按下选择按钮,打开一个文件选择,文本框显示文件路径
if (e.getSource() == Select) {
int intRetVal = fc.showOpenDialog(this);
if (intRetVal == JFileChooser.APPROVE_OPTION) {
textfield.setText(fc.getSelectedFile().getPath());
}
} else if (e.getSource() == btnOK) { // 当按下确定按钮,生成一个新框架,框架里面有一个文本域,显示打开文件的内容
JFrame f = new JFrame();
f.setSize(400, 400);
f.setLocationRelativeTo(null);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
String extensionName = getExtensionName(textfield.getText());
if ("txt".equals(extensionName)) {
f.setTitle("显示文本");
area = new TextArea();
//获取文本值
String text = readTxt(textfield.getText());
area.setText(text);
f.add(area);
f.setVisible(true);
} else if ("jpg".equals(extensionName) || "png".equals(extensionName) || "gif".equals(extensionName)) {
f.setTitle("显示图片");
Icon img = new ImageIcon(textfield.getText());
JLabel label = new JLabel(img);
//添加滚动条
JScrollPane jsp = new JScrollPane(label);
f.add(jsp);
f.setVisible(true);
} else {
JOptionPane.showMessageDialog(null, "请选择txt/jpg/png/gif格式的文件!");
}
}
}

/**
* @Description:获取文件后缀名
* @param filename
* @return
* @throws
*/
private String getExtensionName(String filename) {
if ((filename != null) && (filename.length() > 0)) {
int dot = filename.lastIndexOf('.');
if ((dot > -1) && (dot < (filename.length() - 1))) {
return filename.substring(dot + 1);
}
}
return filename;
}

/**
* @Description:读取文件
* @param path - 文件地址
* @return
* @throws
*/
private String readTxt(String path) {
if (path == null || "".equals(path)) {
return "";
}
StringBuffer sb = new StringBuffer();
File file = new File(path);
InputStreamReader read = null;
BufferedReader reader = null;
try {
read = new InputStreamReader(new FileInputStream(file), "gb2312");
reader = new BufferedReader(read);
String line;
while ((line = reader.readLine()) != null) {
sb.append(line);
sb.append("\n");
}
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
if (read != null) {
try {
read.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
if (reader != null) {
try {
reader.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

}
return sb.toString();
}

public static void main(String[] args) {
Test2 frame = new Test2();
frame.setSize(400, 400);
frame.setLocationRelativeTo(null);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
}

写了一个例子,你可以看一下。该例子可以读取txt文件并显示在文本框中,也可以读取图片文件,显示在JLabel上,有问题再追问,good luck!
import java.awt.TextArea;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;

import javax.swing.Icon;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextField;

public class Test2 extends JFrame implements ActionListener {
JButton button;
JButton Select;
JButton btnOK;

JTextField textfield;
JPanel p;
JFileChooser fc = new JFileChooser();
TextArea area;

public Test2() {
p = new JPanel(); // 建立一个面板
this.getContentPane().add(p);// 把面板添加到框架
p.add(new JButton("文本"));// 把一个文本按钮添加到面板
textfield = new JTextField(10);
p.add(textfield); // 把一个文本框添加到面板
Select = new JButton("浏览");
p.add(Select); // 把一个浏览按钮添加到面板
Select.addActionListener(this);
btnOK = new JButton("确定");
p.add(btnOK);// 把一个确定按钮添加到面板
btnOK.addActionListener(this);
}

public void actionPerformed(ActionEvent e) {
// 当按下选择按钮,打开一个文件选择,文本框显示文件路径
if (e.getSource() == Select) {
int intRetVal = fc.showOpenDialog(this);
if (intRetVal == JFileChooser.APPROVE_OPTION) {
textfield.setText(fc.getSelectedFile().getPath());
}
} else if (e.getSource() == btnOK) { // 当按下确定按钮,生成一个新框架,框架里面有一个文本域,显示打开文件的内容
JFrame f = new JFrame();
f.setSize(400, 400);
f.setLocationRelativeTo(null);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
String extensionName = getExtensionName(textfield.getText());
if ("txt".equals(extensionName)) {
f.setTitle("显示文本");
area = new TextArea();
//获取文本值
String text = readTxt(textfield.getText());
area.setText(text);
f.add(area);
f.setVisible(true);
} else if ("jpg".equals(extensionName) || "png".equals(extensionName) || "gif".equals(extensionName)) {
f.setTitle("显示图片");
Icon img = new ImageIcon(textfield.getText());
JLabel label = new JLabel(img);
//添加滚动条
JScrollPane jsp = new JScrollPane(label);
f.add(jsp);
f.setVisible(true);
} else {
JOptionPane.showMessageDialog(null, "请选择txt/jpg/png/gif格式的文件!");
}
}
}

/**
* @Description:获取文件后缀名
* @param filename
* @return
* @throws
*/
private String getExtensionName(String filename) {
if ((filename != null) && (filename.length() > 0)) {
int dot = filename.lastIndexOf('.');
if ((dot > -1) && (dot < (filename.length() - 1))) {
return filename.substring(dot + 1);
}
}
return filename;
}

/**
* @Description:读取文件
* @param path - 文件地址
* @return
* @throws
*/
private String readTxt(String path) {
if (path == null || "".equals(path)) {
return "";
}
StringBuffer sb = new StringBuffer();
File file = new File(path);
InputStreamReader read = null;
BufferedReader reader = null;
try {
read = new InputStreamReader(new FileInputStream(file), "gb2312");
reader = new BufferedReader(read);
String line;
while ((line = reader.readLine()) != null) {
sb.append(line);
sb.append("\n");
}
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
if (read != null) {
try {
read.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
if (reader != null) {
try {
reader.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

}
return sb.toString();
}

public static void main(String[] args) {
Test2 frame = new Test2();
frame.setSize(400, 400);
frame.setLocationRelativeTo(null);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
}

JFileChooser jfc =new JFileChooser(new File("C:\\DDDDData\\MyBs\\SaveTest"))

这样来创建jfc实例就可以设置默认路径了~
把TextFiled的实例引用写到你注释的位置,然后调用相应的set就可以了

无语了,这个破知道,提交代码不过,改成11,就成功了!代码提交中

不好意思,这个真心不会,毕竟现在很少用java来做界面了!


ava中怎样让一个JFrame窗体始终在最前端显示并且无法操作其他窗体_百度...
主窗口---显示另一个窗口时,主窗口的enable设置成false

Frame类有哪些方法?
java.awt.Frame extends java.awt.Window java.awt.Window extends java.awt.Container java.awt.Container extends java.awt.Component java.awt.Component extends ava.lang.Object

文本编辑器(手机)Java
JMenuBar menuBar1 = new JMenuBar();JMenu menu = new JMenu("文件");menuBar1.add(menu);JMenuItem menuIt1 = new JMenuItem("新建");JMenuItem menuIt2 = new JMenuItem("打开");JMenuItem menuIt3 = new JMenuItem("保存");JMenuItem menuIt4 = new JMenuItem("另存为");m...

rrdtool查询有多少个rrd文件
这两个问题就对应今天要讲的两个操作 :first\/last 、info 。first 就是用于查看该 RRD 文件中某个 RRA 的第一个数据是在什么时候插入的(或者说第一次更新);last 就是查看该 RRD 文件的最近一次更新;info就是查看 rrd 文件的结构信息。

镇坪县13857833099: java中如何给一个类中的按钮编写事件调用另一个jFrame类中的panel
木殃洛芬: jbutton.addActionListener(new ActionListener(){ public void actionPerform(ActionEvent e){ Jframe jframe = new youFrame(); //获得你的那个jframe jframe.getPanel1().setVisible(false); //获得jframe里面的第一个面板,并设置隐藏 jframe.getPane2().setVisible(true); //获得jframe 里面第二个面板,设置显示. //一上俩个 getPane() 方法,为 你在jframe 里面,对俩个面板提供的getter 方法. } )

镇坪县13857833099: java中如何给button添加事件 -
木殃洛芬: Java Swing本身提供了现成的按钮控件JButton 创建一个新的按钮:JButton about = new JButton; 这个按钮该放到菜单区:toolBar.add(about); 要为按钮添加事件响应,需要使用about.addActionListener(this)来告诉程序监听按钮按下时的事件,ActionListener是一个程序接口. public class KyodaiUI extends JFrame implements ActionListener {...}实现ActionListener接口是为了告诉程序我要进行事件处理了. 最后我们得添加响应事件的代码:

镇坪县13857833099: 编写java程序实现右图所示的界面,并为按钮添加事件处理,要求每按一下按钮,数字加5,初始值为0. -
木殃洛芬: import java.awt.BorderLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import javax.swing.JButton; import javax.swing.JFrame; import javax....

镇坪县13857833099: java 如何编写JFrame窗体右上角红色打叉关闭按钮的事件? -
木殃洛芬: 在你JFrame的构造函数里,添加如下代码即可.实际上就是添加一个对窗口动作的监听程序代码段 setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE); addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { System.exit(0); } });

镇坪县13857833099: java中如何给工具栏按钮添加事件响应 -
木殃洛芬: 首先把jtoolbar往容器上加,然后把button往jtoolbar上加 代码:contentpane = (jpanel) getcontentpane(); contentpane.setlayout(null); contentpane.add(jtoolbar1); jtoolbar1.add(jbutton1);

镇坪县13857833099: java怎么给按钮添加事件 -
木殃洛芬: 先添加事件actionListener 接口,再实现该接口的抽象方法.button.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { System.exit(0); //退出 } });

镇坪县13857833099: java按钮添加事件 -
木殃洛芬: 首先获取你需要清空表格的对象,然后给按钮绑定removeAll()事件,例如: click:对象.removeAll();

镇坪县13857833099: java 做的图形界面中可不可以添加按钮事件 (如果可以如何写添加语句啊?) -
木殃洛芬: javax.Swing实现button的监听有两种方式:方法一:实现 implements ActionListener接口,然后实现它的抽象方法 public void actionPerformed(ActionEvent e) { //写点击按钮后发生的操作代码 } 方法二: jButton.addAtionListener(new ActionEvent (){ //写点击按钮后发生的操作代码 });

镇坪县13857833099: JAVA创建一个窗体添加两个按钮,为这两个按钮添加事件处理使窗体的下部分分面板背景颜色在黑白间转换 -
木殃洛芬: import java.awt.Color; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.SwingUtilities; public class TestWin extends ...

镇坪县13857833099: java JTable通过按钮事件动态添加数据 -
木殃洛芬: 你可以使用卡片式布局(CardLayout),点击添加按钮后转到另一个卡片,那个卡片里面放置的是另一个JPanel,里面放数个文本框、下拉框、提交按钮之类的东西,然后点击提交后在后台将数据取得然后放入JTable再转到有JTable的卡片,就可以了. 或者是直接在有表的的地方设置一个添加按钮,点击后表增加一行,然后可以直接在表中添加数据.退出编辑状态,点击保存按钮更新数据.

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网