JAVA的jframe怎么让文本框里面的内容出来啊?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JAVA的jframe怎么让文本框里面的内容出来啊?相关的知识,希望对你有一定的参考价值。
本来想在后面添加system.out.println但是不知道怎么弄 就是让这个2个文字都可以实现 急!
JFrame基本不用,如果你要是当做兴趣来学可以,如果你是为了工作建议你跳过这块下面是我初学JFrame时的笔记,你对着看下吧,图片不清楚,我也不知道你是什么问题
13.2 常用窗体
窗体作为Swing应用程序中组件的承载体,处于非常重要的位置,Swing中常用的窗体包括JFrame和JDialog
13.2.1 JFrame窗体
JFrame窗体是一个容器,它是Swing程序中各个组件的载体,可以将JFrame看做承载这些Swing组件的容器,在开发应用程序时可以通过继承java.swing.JFrame同时为组件设置事件,由于该窗体继承了JFrame类,所以它拥有"最大化""最小化""关闭"等按钮
JFrame在程序中的语法如下:
[
JFrame jf=new JFrame(title);
Contiainer con=jf.getContainer();
]
jf:JFrame类的对象
con:container类的对象,可以使用JFrame对象调用getContainer()方法获取
我们大致应该有这样一个概念,Swing组件的窗体通常与组件和容器无关,所以在JFrame对象创建完成后,需要调用getContentPane()方法将窗体转换为容器,然后在容器中添加组件或设置布局管理器,通常,这个容器用来包含和显示组件,如果需要将组件添加至容器,可以使用来自Container类的add()方法进行设置
例如:container.add(new JButton("按钮"));
//JButton按钮组件
在容器中添加组件后,也可以使用Container类的remove()方法将这些组件从容器中删除
title:方法参数,也是JFrame窗体名称
例如:container.remove(new JButton("按钮"));
下面将会写一个程序,实现JFrame窗体,并在其中添加一个组件
[
package b;
import java.awt.*; //导入awt相关包
import javax.swing.*; //导入swing相关包(swing是javax中的包)
//13.2.1 JFrame窗体
public class R extends JFrame //定义一个类继承JFrame类
public static void main(String[] args)
JFrame jf=new JFrame("创建一个JFrame窗体");
//实例化一个JFrame对象
//此处文字表示给窗体命名
Container con=jf.getContentPane();
//获取一个容器
JLabel jl=new JLabel("这是一个JFrame窗体");
//创建一个JLabel标签
jl.setHorizontalAlignment(SwingConstants.CENTER);
//使标签上的文字居中
con.add(jl); //将标签添加到容器中
con.setBackground(Color.black); //设置窗体背景颜色
jf.setVisible(true);
//设置窗体是否可视,默认为false,如果为false就不会输出任何东西
jf.setSize(500,500); //设置窗体大小
jf.setDefaultCloseOperation(WindowConstants.HIDE_ON_CLOSE);
//设置窗体关闭方式
]
在上面的例子中,R类继承了JFrame类,在a()方法中实现JFrame对象,JFrame类的常用构造方法包括以下两种形式
(1)public JFrame()
(2)public JFrame(String args)
JFrame类中的两种构造方法分别为无参构造方法与有参构造方法,第一种形式的构造方法可以创建一个不可见但是具有标题的窗体,可以使用JFrame对象调用show()方法使窗体可见,但是该方法早已被新版JDK所弃用,通常使用setVisible(true)方法使窗体可见
同时使用setSize(int x,int y)方法设置窗体大小,其中x,y分别代表窗体的宽与高
创建窗体后,需要给予窗体一个关闭的方式,可以调用setDefaultCloseOperation()方法关闭窗体,java为窗体关闭提供了多种方式,常用的有以下4种
DO_NOTHING_ON_CLOSE
//表示什么都不用做,退出编译器后程序窗体会自动关闭,但是在关闭编译器之前,无论做什么都不能使程序窗体关闭或消失
//下面三种方式都是点击"x"使窗体消失,但是具体执行效果不一样
DISPOSE_ON_CLOSE
//点击"x"后,将程序窗体隐藏并同时切换到后台运行,然后再杀死该进程
EXIT_ON_CLOSE
//点击"x"后直接将该程序窗体关闭
HIDE_ON_CLOSE
(此为默认关闭方式)
//点击"x"后,先将程序窗体隐藏,然后再切换到后台运行,但是系统并不会自动结束该进程,如果要结束该进程,则必须手动结束
这几种操作实际上是将一个int型的常量封装在javax.swing.WindowsConstants接口中
13.2.2 JDialog窗体
JDialog窗体是Swing组件中的对话框,它继承了AWT组件中的java.awt.Dialog类
JDialog窗体的功能是从一个窗体中弹出另一个窗体,就像是在使用IE浏览器时弹出的确定对话框一样,JDialog窗体实质上就是另一种类型的窗体,它与JFrame窗体类似,在使用时也需要调用getContentPane()方法将窗体转换为容器,然后在容器中设置窗体的特性
在应用程序中创建JDialog窗体需要实例化JDialog类,通常使用以下几个JDialog类的构造方法
public JDialog()
//创建一个没有标题和父窗体的对话框
public JDialog(Frame a)
//创建一个指定父窗体的对话框,但该窗体没有标题
public JDialog(Frame a,boolean b)
//创建一个指定的对话框,并指定父窗体,但该窗体没有指定标题
public JDialog(Frame a,String b)
//创建一个指定标题和父窗体对话框
public JDialog(Frame a,String b,boolean c)
//创建一个指定标题,窗体和模式的对话框
13.2.2.1 JDialog参数说明
a:父窗体对象
b:对话框标题
c:是否阻塞父窗体(当操作子窗体时无法操作父窗体)
13.2.2.2 例子
下面以一个程序为例,这个程序会实现单击JFrame窗体中的按钮后,弹出一个对话框,
[
package b;
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
//导入的包的名称越详细越好,如果不详细有时候系统会识别不到
public class U extends JDialog
//此处继承JDialog,就不要再声明一个JDialog对象,下面直接写相关配置,默认就直接配置JDialog
public U(U1 frame)
//创建一个类的构造方法,参数类型为JFrame
super(frame,"对话框",true);
//当继承一个类的时候,可以直接使用super()调用父类构造方法,就不需要再声明一个对象了
Container con=getContentPane();
//创建一个JDialog为基础的容器,该方法只能在非静态方法中使用
con.add(new Label("这是一个对话框"));
//在容器中添加标签
setBounds(100,100,100,100);
//设置对话框大小
public class U1 extends JFrame
//此处继承JFrame,就不要再声明一个JFrame对象,下面直接写相关配置,默认就直接配置JFrame
public void a()
setBounds(300,300,300,300);
//设置父窗体大小
Container con=getContentPane();
//创建一个以JFrame为基础的容器
JButton jb=new JButton("这是一个按钮");
//添加按钮
con.add(jb);
//将按钮添加到容器
con.setLayout(new FlowLayout());
//布局格式,flow布局就是按钮在父窗体的最上面,默认为整个窗体都是按钮,如果为null,则按钮不显示
setVisible(true);
//父窗体是否显示可见
setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
//父窗体关闭方式
jb.addActionListener(new ActionListener()
//设置鼠标单击事件(也叫行为监听)
public void actionPerformed(ActionEvent e)
//使用addActionListener的actionPerformed方法,此方法格式固定
new U(U1.this).setVisible(true);
//调用容器,使用JFrame对象,使弹出的窗体可见
);
public static void main(String[] args)
new U(null).new U1().a();
//调用内部方法
]
在上面的例子中,为了使对话框在父窗体弹出,定义了一个JFrame窗体,首先在该窗体中定义一个按钮,然后为此按钮添加一个鼠标单击监听事件(在这里需要使用匿名内部类的形式),这里使用new S().setVisible(true)语句使对话框窗体可见,这样就实现了用户单机该按钮后弹出对话框的功能
在S类中,由于它继承了JDialog类,所以可以在构造方法中使用super关键字调用JDialog构造方法,在这里使用了public JDialog(Frame a,String b,boolean c)这种形式的构造方法,相应的设置了自定义的JFrame窗体以及对话框的标题和窗体类型
从上面的代码中可以看出,JDialog窗体与JFrame窗体形式基本相同,甚至在设置窗体的特性时调用的方法名称都基本相同,如设置窗体大小,窗体关闭状态等
上面会用到JButton,此处不需要过多了解,以后会介绍到 参考技术A 既然用JFrame 了,下面用JButton, JTextArea
JTextArea setText方法设置想显示的文本字符串。 参考技术B 使用system是不可能让iframe框架中的文本框出现的。因为iframe里面调用的是别的网站的东西。 参考技术C ta.setText("你要的文本");
java中JFrame按钮添加事件,选择路径放到文本框里面
1。下面的代码是选择文件之后,在控制台输出路径,我只想选择路径之后就放到文本框中显示出来。
2.最好能添加上选择根目录的方法。
3.请朋友们给个思路。
package com.dao;
/**
* @param args
*/
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
public class Win extends JFrame
JButton jb = new JButton("上传");
public Win()
jb.addActionListener(new ActionListener()
public void actionPerformed(ActionEvent e)
JFileChooser jfc = new JFileChooser();
if(jfc.showOpenDialog(Win.this)==JFileChooser.APPROVE_OPTION )
//解释下这里,弹出个对话框,可以选择要上传的文件,如果选择了,就把选择的文件的绝对路径打印出来,有了绝对路径,通过JTextField的settext就能设置进去了,那个我没写
System.out.println(jfc.getSelectedFile().getAbsolutePath());
);
//这下面的不用在意 一些设置
add(jb);
setLayout(new FlowLayout());
setSize(480, 320);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setLocationRelativeTo(null);
public static void main(String[] args)
// TODO Auto-generated method stub
new Win().setVisible(true);
你需要的方法在按钮事件方法中,有问题追问,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);
参考技术A 写了一个例子,你可以看一下。该例子可以读取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);
参考技术B JFileChooser jfc =new JFileChooser(new File("C:\\DDDDData\\MyBs\\SaveTest"))
这样来创建jfc实例就可以设置默认路径了~
把TextFiled的实例引用写到你注释的位置,然后调用相应的set就可以了 参考技术C 无语了,这个破知道,提交代码不过,改成11,就成功了!代码提交中 参考技术D 不好意思,这个真心不会,毕竟现在很少用java来做界面了!
以上是关于JAVA的jframe怎么让文本框里面的内容出来啊?的主要内容,如果未能解决你的问题,请参考以下文章