JAVA的jframe怎么让文本框里面的内容出来啊

JAVA的jframe怎么让文本框里面的内容出来啊,第1张

JFrame基本不用,如果你要是当做兴趣来学可以,如果你是为了工作建议你跳过这块

下面是我初学JFrame时的笔记,你对着看下吧,不清楚,我也不知道你是什么问题

132 常用窗体

窗体作为Swing应用程序中组件的承载体,处于非常重要的位置,Swing中常用的窗体包括JFrame和JDialog

1321 JFrame窗体

JFrame窗体是一个容器,它是Swing程序中各个组件的载体,可以将JFrame看做承载这些Swing组件的容器,在开发应用程序时可以通过继承javaswingJFrame同时为组件设置事件,由于该窗体继承了JFrame类,所以它拥有"最大化""最小化""关闭"等按钮

JFrame在程序中的语法如下:

[

JFrame jf=new JFrame(title);

Contiainer con=jfgetContainer();

]

jf:JFrame类的对象

con:container类的对象,可以使用JFrame对象调用getContainer()方法获取

我们大致应该有这样一个概念,Swing组件的窗体通常与组件和容器无关,所以在JFrame对象创建完成后,需要调用getContentPane()方法将窗体转换为容器,然后在容器中添加组件或设置布局管理器,通常,这个容器用来包含和显示组件,如果需要将组件添加至容器,可以使用来自Container类的add()方法进行设置

例如:containeradd(new JButton("按钮"));

//JButton按钮组件

在容器中添加组件后,也可以使用Container类的remove()方法将这些组件从容器中删除

title:方法参数,也是JFrame窗体名称

例如:containerremove(new JButton("按钮"));

下面将会写一个程序,实现JFrame窗体,并在其中添加一个组件

[

package b;

import javaawt; //导入awt相关包

import javaxswing; //导入swing相关包(swing是javax中的包)

//1321 JFrame窗体

public class R extends JFrame{ //定义一个类继承JFrame类

public static void main(String[] args) {

JFrame jf=new JFrame("创建一个JFrame窗体");

//实例化一个JFrame对象

//此处文字表示给窗体命名

Container con=jfgetContentPane();

//获取一个容器

JLabel jl=new JLabel("这是一个JFrame窗体");

//创建一个JLabel标签

jlsetHorizontalAlignment(SwingConstantsCENTER);

//使标签上的文字居中

conadd(jl); //将标签添加到容器中

consetBackground(Colorblack); //设置窗体背景颜色

jfsetVisible(true);

//设置窗体是否可视,默认为false,如果为false就不会输出任何东西

jfsetSize(500,500); //设置窗体大小

jfsetDefaultCloseOperation(WindowConstantsHIDE_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型的常量封装在javaxswingWindowsConstants接口中

1322 JDialog窗体

JDialog窗体是Swing组件中的对话框,它继承了AWT组件中的javaawtDialog类

JDialog窗体的功能是从一个窗体中d出另一个窗体,就像是在使用IE浏览器时d出的确定对话框一样,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)

//创建一个指定标题,窗体和模式的对话框

13221 JDialog参数说明

a:父窗体对象

b:对话框标题

c:是否阻塞父窗体(当 *** 作子窗体时无法 *** 作父窗体)

13222 例子

下面以一个程序为例,这个程序会实现单击JFrame窗体中的按钮后,d出一个对话框,

[

package b;

import javaawt;

import javaxswing;

import javaawtevent;

//导入的包的名称越详细越好,如果不详细有时候系统会识别不到

public class U extends JDialog{

//此处继承JDialog,就不要再声明一个JDialog对象,下面直接写相关配置,默认就直接配置JDialog

public U(U1 frame) {

//创建一个类的构造方法,参数类型为JFrame

super(frame,"对话框",true);

//当继承一个类的时候,可以直接使用super()调用父类构造方法,就不需要再声明一个对象了

Container con=getContentPane();

//创建一个JDialog为基础的容器,该方法只能在非静态方法中使用

conadd(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("这是一个按钮");

//添加按钮

conadd(jb);

//将按钮添加到容器

consetLayout(new FlowLayout());

//布局格式,flow布局就是按钮在父窗体的最上面,默认为整个窗体都是按钮,如果为null,则按钮不显示

setVisible(true);

//父窗体是否显示可见

setDefaultCloseOperation(WindowConstantsEXIT_ON_CLOSE);

//父窗体关闭方式

jbaddActionListener(new ActionListener(){

//设置鼠标单击事件(也叫行为监听)

public void actionPerformed(ActionEvent e) {

//使用addActionListener的actionPerformed方法,此方法格式固定

new U(U1this)setVisible(true);

//调用容器,使用JFrame对象,使d出的窗体可见

}

});

}

}

public static void main(String[] args) {

new U(null)new U1()a();

//调用内部方法

}

}

]

在上面的例子中,为了使对话框在父窗体d出,定义了一个JFrame窗体,首先在该窗体中定义一个按钮,然后为此按钮添加一个鼠标单击监听事件(在这里需要使用匿名内部类的形式),这里使用new S()setVisible(true)语句使对话框窗体可见,这样就实现了用户单机该按钮后d出对话框的功能

在S类中,由于它继承了JDialog类,所以可以在构造方法中使用super关键字调用JDialog构造方法,在这里使用了public JDialog(Frame a,String b,boolean c)这种形式的构造方法,相应的设置了自定义的JFrame窗体以及对话框的标题和窗体类型

从上面的代码中可以看出,JDialog窗体与JFrame窗体形式基本相同,甚至在设置窗体的特性时调用的方法名称都基本相同,如设置窗体大小,窗体关闭状态等

上面会用到JButton,此处不需要过多了解,以后会介绍到

要在文本框输入之后敲回车在标签中显示,需要给文本框加上ActionListener监听器,并重写其

actionPerformed方法,完整的Java程序如下:(改动的地方见注释,当"输入选号"为空时回车,会把"当前选号"置为空)

import javaawtBorderLayout;import javaawtFlowLayout;import javaawtFont;import javaawtGridLayout;import javaawteventActionEvent;import javaawteventActionListener;//这里导入监听接口import javaxswingBorderFactory;import javaxswingJButton;import javaxswingJFrame;import javaxswingJLabel;import javaxswingJPanel;import javaxswingJTextArea;import javaxswingJTextField;public class CCG extends JFrame implements ActionListener{//这里加监听接口 JLabel jl1=new JLabel("35选7",JLabelLEFT); JLabel jl2=new JLabel("输入选号:"); JLabel jl3=new JLabel("当前选号:"); JLabel jl4=new JLabel();    //这里改一下 JTextField jtf=new JTextField(5); JTextArea jta=new JTextArea(5,20); JButton jb1=new JButton("添加本组号码"); JButton jb2=new JButton("验证并保存到文件"); JPanel jp1=new JPanel(); JPanel jp2=new JPanel(); JPanel jp3=new JPanel(); JPanel jp4=new JPanel(); JPanel jp5=new JPanel(); JPanel jp6=new JPanel(); JPanel jp7=new JPanel(); CCG(){  super("Lottery");  jtfaddActionListener(this);   //这里加监听器  jl1setFont(new Font(null,FontBOLD,20));  jp1setLayout(new FlowLayout(FlowLayoutLEFT));  jp1add(jl1);  jp1setBorder(BorderFactorycreateEtchedBorder ());  jp4setLayout(new FlowLayout(FlowLayoutLEFT));  jp4add(jl2);jp4add(jtf);  jp5setLayout(new FlowLayout(FlowLayoutLEFT));  jp5add(jl3);jp5add(jl4);  jp6setLayout(new FlowLayout(FlowLayoutLEFT));  jp6add(jb1);  jp2setLayout(new GridLayout(3,1));  jp2add(jp4);jp2add(jp5);jp2add(jp6);  jp2setBorder(BorderFactorycreateEtchedBorder ());  jp3setLayout(new FlowLayout(FlowLayoutLEFT));  jp3add(jta);jp3add(jb2);  jp3setBorder(BorderFactorycreateEtchedBorder ());  jp7setLayout(new GridLayout(2,1));  jp7add(jp2);  jp7add(jp3);  add(jp1,BorderLayoutNORTH);  add(jp7,BorderLayoutCENTER);  setSize(400, 300);  setDefaultCloseOperation(JFrameEXIT_ON_CLOSE);  setLocationRelativeTo(null);  setVisible(true); } @Override public void actionPerformed(ActionEvent ae) {//这里加监听函数  if(aegetSource()==jtf){   if(jtfgetText()equals("")){    jl4setText("");   }else{    if(jl4getText()equals("")){     jl4setText(jtfgetText());    }else{     jl4setText(jl4getText()+","+jtfgetText());    }   }  } } public static void main(String[] args) {  new CCG(); }}

运行结果:

import javaawtFlowLayout;

import javaawteventActionEvent;

import javaawteventActionListener;

import javaxswingJButton;

import javaxswingJFrame;

import javaxswingJLabel;

import javaxswingJTextField;

class gName extends JFrame implements ActionListener {

JTextField txt = null;

JLabel jlb = new JLabel("输入名字!");

JButton btn = new JButton("获取!");

public gName() {

setSize(300, 200);

setVisible(true);

setLayout(new FlowLayout());

setTitle("___");

txt = new JTextField(20);

add(txt);

add(jlb);

add(btn);

setDefaultCloseOperation(EXIT_ON_CLOSE);

txtsetText("名字");

validate();

btnaddActionListener(this);

}

public void actionPerformed(ActionEvent e) {

String txt2;

txt2 = txtgetText();

Systemoutprintln(txt2);

}

}

public class demo {

public static void main(String[] args) {

new gName();

}

}

public class Test {

 JFrame myframe = new JFrame();

 JLabel label1 = new JLabel("label1");

 JLabel label2 = new JLabel("label2");

 JButton button1 = new JButton("确定");

 JButton button2 = new JButton("取消");

 public void init() {

  myframesetSize(300, 200);

  myframegetContentPane()setLayout(null);

  myframesetTitle("java 小程序");

  label1setBounds(20, 20, 120, 27);

  label2setBounds(20, 40, 120, 27);

  button1setBounds(20, 60, 60, 27);

  button2setBounds(100, 60, 60, 27);

  button1addActionListener(new ActionListener() {

   public void actionPerformed(ActionEvent e) {

    label1setText("你点了确定");

   }

  });

  button2addActionListener(new ActionListener() {

   public void actionPerformed(ActionEvent e) {

    label2setText("你点了取消");

   }

  });

  myframeadd(label1);

  myframeadd(label2);

  myframeadd(button1);

  myframeadd(button2);

  myframeshow();

 }

 public static void main(String[] args) {

  new Test()init();

 }

以上就是关于JAVA的jframe怎么让文本框里面的内容出来啊全部的内容,包括:JAVA的jframe怎么让文本框里面的内容出来啊、QLabel文本框内容输入后回车可以获取吗,怎么实现、JAVA方面的问题(取出文本框里的内容并在DOS里显示)帮我在源程序里改一下等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9499131.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-29
下一篇2023-04-29

发表评论

登录后才能评论

评论列表(0条)

    保存