java swing 布局输入框

查看:2554|回复:4
这里是代码
import javax.swing.*;
import javax.swing.event.*;
import javax.swing.text.D
import java.awt.*;
import java.awt.event.*;
import java.util.*;
public class frame extends JFrame {
JLabel lable1;
JTextArea text2;
JTextField text1;
private static final long serialVersionUID = 1L;
public void shapeSearch(boolean b){
& &&&this.setTitle(&图形属性查询器&);
this.setSize(400,250);
& &&&this.setResizable(b);
& &&&this.setVisible(true);
& &&&this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
public void imputDemo(){
&&JLabel lable1=new JLabel(&图形名称:&);
JTextArea text2=new JTextArea();
&&text2.setText(null);
&&text2.setLineWrap(true);
&&text2.setBounds(20, 20,300, 200);
&&JTextField text1=new JTextField(10);
&&JButton button = new JButton(&查询&);
JScrollPane scroll=new JScrollPane(text2);
&&FlowLayout seeText=new FlowLayout(FlowLayout.CENTER);
&&seeText.setHgap(20);
&&seeText.setVgap(60);
&&this.setLayout(seeText);
&&this.add(lable1);
&&this.add(text1);
&&this.add(button);
&&this.add(scroll);
ButtonHandle handle=new ButtonHandle();
&&button.addActionListener(handle);
&&DocumentWriter dm=new DocumentWriter();
&&Document doc=text1.getDocument();
&&doc.addDocumentListener(dm);
class ButtonHandle implements ActionListener{
&&public void actionPerformed(ActionEvent event){
& &if(event.getActionCommand().equals(button)){
& &if(text1.getText()==&圆形&){
text2.setText(&该圆形的半径是3\n&+&周长是18.84\n&+&面积是28.26&);
& &else if(text1.getText()==&矩形&){
text2.setText(&该矩形的长是5,宽是4\n&+&周长是18\n&+&面积是20&);
& &text2.setVisible(true);
& &else if(text1.getText()==&三角形&){
text2.setText(&该三角形的底边是3,高是4,斜边是5\n&+&周长是12\n&+&面积是6&);
& & text2.setVisible(true);
class DocumentWriter implements DocumentListener{
&&public void changedUpdate(DocumentEvent e){}
&&public void insertUpdate(DocumentEvent e){}
&&public void removeUpdate(DocumentEvent e){}
public static void main(String[] args)throws Exception{
&&frame&&littleFrame =new frame();
& && & littleFrame.shapeSearch(false);
& && &littleFrame.imputDemo();
比如在文本域里输入三角形,点击查询按钮,下面的文本框没反应,考虑的好长时间都不知道问题出在哪里求大神帮忙
(21.08 KB)
用ajax,jquery做。${下面文本框ID}=返回的值
引用:原帖由 黑眸灰瞳 于
10:21 发表
用ajax,jquery做。${下面文本框ID}=返回的值 额,我问的是Java 基于swing做的图形界面,我想知道我的问题出在哪里
swing好久没用了,不过你的button貌似没添加actionlistenner
引用:原帖由 黑眸灰瞳 于
14:34 发表
swing好久没用了,不过你的button貌似没添加actionlistenner 我已经解决了,谢谢你,不是你说的问题java-占位符文本框上
我试图创建的Swing的GUI。我的问题是,我有一个文本框,但我希望它有一个“占位符”(喜欢)。我在这里和那里读,它可以通过重写文本框的paint()方法来完成。
由于生成我的代码,我发现我需要的“自定义创建代码”来覆盖生成的代码。
以下是我已经把在“创建自定义代码”字段
new javax.swing.JTextField()
String test = super.getText();
String hint = "Username";
public void paint(Graphics g)
if ( test == null || test.length() & 1 ) {
g.setColor( Color.red );
g.drawString(hint, 0, 0);
g.setColor(Color.BLACK);
super.paint(g);
这将生成以下输出
javax.swing.JTextField username = new javax.swing.JTextField()
String test = super.getText();
String hint = "Username";
public void paint(Graphics g)
if ( test == null || test.length() & 1 ) {
g.setColor( Color.red );
g.drawString(hint, 0, 0);
g.setColor(Color.BLACK);
super.paint(g);
现在我看到的文本框,但没有什么的话,也许我需要添加函数到事件 CodeGo.net,但我不能肯定。
我将不胜感激,如果任何人都可以伸出援助之手。
编辑:这是什么,我想要做一个演示:
本文地址 :CodeGo.net/517449/
-------------------------------------------------------------------------------------------------------------------------
1. 我发现这在Oracle论坛。
public class TextFieldWithPrompt extends JTextField{
protected void paintComponent(java.awt.Graphics g) {
super.paintComponent(g);
if(getText().isEmpty() && ! (FocusManager.getCurrentKeyboardFocusManager().getFocusOwner() == this)){
Graphics2D g2 = (Graphics2D)g.create();
g2.setBackground(Color.gray);
g2.setFont(getFont().deriveFont(Font.ITALIC));
g2.drawString("zip", 5, 10); //figure out x, y from font's FontMetrics and size of component.
g2.dispose();
覆盖文本字段我结束了更多的自定义文本字段,然后我真的很想......
然后我发现这个提示API,它是简单的,不需要你来扩展它也有一个很好的“哥们”的API
本文标题 :java-占位符文本框上
本文地址 :CodeGo.net/517449/
Copyright (C) 2014 CodeGo.net 沪ICP备号 联&系& c&o&d&e&g&o &@&1&2&6&.&c&o&m1228人阅读
&&& Java1.4 引入了JFormattedTextField,这个组件对于编辑诸如数字和日期等复杂的格式化值提供了显式的支持。 JFormattedTextField的表现有些类似与JTextField,不过在其中要接受一个指定格式的对象,而且要通过器setValue() 和getValue()方法来管理一个复杂的对象类型(如Date或Integer)。
import java.text.DecimalFimport java.text.SimpleDateFimport java.util.Dimport javax.swing.Bimport javax.swing.JFormattedTextFimport javax.swing.JFimport javax.swing.JLimport javax.swing.JTextFimport javax.swing.text.MaskFpublic class Text& {&&&&&& public static void main(String args[]) throws Exception {&&& &&& Box form = Box.createVerticalBox();&&& &&& form.add(new JLabel("N"));&&& &&& form.add(new JTextField("Joe User"));&&& &&&&&& &&& form.add(new JLabel("Birthiday:"));&&& &&& JFormattedTextField birthdayField =& & & & & & & & & & & & & & &&& new JFormattedTextField(new SimpleDateFormat("mm/dd/yy"));&&& &&& birthdayField.setValue(new Date());&&& &&& form.add(birthdayField);&&& &&&&&& &&& form.add(new JLabel("Age:"));&&& &&& form.add(new JFormattedTextField(new Integer(32)));&&& &&&&&& &&& form.add(new JLabel("Hairs on Body:"));&&& &&& JFormattedTextField hairsField =&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& new JFormattedTextField(new DecimalFormat("###,###"));&&& &&& hairsField.setValue(new Integer(100000));&&& &&& form.add(hairsField);&&& &&&&&& &&& form.add(new JLabel("Phone Number:"));&&& &&& JFormattedTextField phoneField =&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& new JFormattedTextField(new MaskFormatter("(###)###-####"));&&& &&& phoneField.setValue("(314)555-1212");&&& &&& form.add(phoneField);&&& &&&&&& &&& JFrame frame = new JFrame("User Information");&&& &&& frame.getContentPane().add(form);&&& &&& frame.pack();&&& &&& frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);&&& &&& frame.setVisible(true);&&& }}
&&& JFormattedTextField可以使用setValue()设置一个有效值,也可以用getValue()来获取上一个有效值,为此,必须基于所用的格式将值强制转换回正确的类型,例如:
&&& Date bday = (Date)birthdayField.getValue();
&&& 对于一个JFormattedTextField,当用户试图将焦点由此域转到另一个域时,该JFormattedTextField将对文本进行有效性验证。默认情况下,还原为上一个有效值。如果希望保留无效值,可以调用 setFocusLostBehavior()方法来设置MIT(默认为 COMMIT_OR_REVERT)。
&&& JFormattedTextField本身对于各种格式类型一无所知,它使用了AbstractFormatter对象,此对象才了解特定的格式类型。AbstractFormatter提供了两个接口的实现:DocumentFilter和NavigationFilter。DocumentFilter将关联至Document的实现,并允许截取编辑命令从而根据需要加以修改。NavigationFilter可以关联至JTextComponent,从而用来控制光标的移动。&&& 以下例子为JTextField应用了一个文档过滤器,将所有输入都改为大写。代码如下:import javax.swing.JFimport javax.swing.JTextFimport javax.swing.text.AbstractDimport javax.swing.text.AttributeSimport javax.swing.text.BadLocationEimport javax.swing.text.DocumentFpublic class DocFilter {&&&&&& public static void main(String[] args) {&&& &&& JTextField field = new JTextField(30);&&& &&& //设置过滤器&&& &&& ((AbstractDocument)(field.getDocument())).setDocumentFilter(&&& &&& &&& &&& new DocumentFilter(){&&& &&& &&& &&& &&& //填写数据时,所有字母改为大写&&& &&& &&& &&& &&& public void insertString(FilterBypass fb,&&& &&& &&& &&& &&& &&& &&& &&&&&&&&&&&&&&&&& int offset,&&& &&& &&& &&& &&& &&& &&& &&&&&&&&&&&&&&&&& String string,&&& &&& &&& &&& &&& &&& &&& &&&&&&&&&&&&&&&&& AttributeSet attr)throws BadLocationException{&&& &&& &&& &&& &&& &&& fb.insertString(offset,string.toUpperCase(),attr);&&& &&& &&& &&& &&& }&&& &&& &&& &&& &&& //修改数据时,所有字母改为大写&&& &&& &&& &&& &&& public void replace(DocumentFilter.FilterBypass fb,&&& &&& &&& &&& &&& &&& &&& &&&&&&&&&&&& int offset,&&& &&& &&& &&& &&& &&& &&& &&&&&&&&&&&& int length,&&& &&& &&& &&& &&& &&& &&& &&&&&&&&&&&& String string,&&& &&& &&& &&& &&& &&& &&& &&&&&&&&&&&& AttributeSet attr) throws BadLocationException{&&& &&& &&& &&& &&& &&& fb.replace(offset,length,string.toUpperCase(), attr);&&& &&& &&& &&& &&& }&&& &&& &&& &&& });&&& &&&&&& &&& JFrame frame = new JFrame("User Information");&&& &&& frame.getContentPane().add(field);&&& &&& frame.pack();&&& &&& frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);&&& &&& frame.setVisible(true);&&& }}&&& 当文本增加到文档或有所修改时,将调用DocumentFilter的方法insertString()和replace()。在这些方法中则有机会在继续传递文本前对其过滤。当已经准备好应用文本时,则使用FilterBypass引用。FilterBypass有同样的方法,它将把修改直接应用到文档中。DocumentFilter remove()方法可以用于截取删除文档字符的编辑命令。&&& 对于这个例子,有一点需要指出,即并非所有Document都有一个setDocumentFilter()方法。我们必须将文档类型强制转换为AbstractDocument。只有扩展了AbstractDocument的文档实现才接受过滤器。这是因为在Java1.4中增加了文档过滤API,但认为不能对原来的Document接口做出修改。密码输入框&&& JPasswordField仅用于输入密码,它是JTextField的子类,使用与JTextField完全相同,只不过所键入的每个字符都显示为用一个字符,通常是星号,可以使用setEchoChar()方法来设置JPasswordField使用另一个字符。&&& 可以使用getText()来得到所键入的密码,但已被废弃。取而代之的是getPassword()方法。getPassword()方法返回一个字符数组,而不是一个String对象。因为对于窥探内存的密码窃听器,字符数组没有String那么脆弱。要注意,在Java密码类中,其方法均接受字符数组类型的密码而不是String,因此可以直接将getPassword()调用结果传递给密码类而无需创建一个String。
版权声明:本文为博主原创文章,未经博主允许不得转载。
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:22816次
排名:千里之外java swing
输入框小程序 - 下载频道 - CSDN.NET
&&&&java swing
输入框小程序
&java swing
输入框小程序
swing 编写的 ip输入框 很好用的请下载使用
若举报审核通过,可奖励20下载分
被举报人:
whatjavais
举报的资源分:
请选择类型
资源无法下载
资源无法使用
标题与实际内容不符
含有危害国家安全内容
含有反动色情等内容
含广告内容
版权问题,侵犯个人或公司的版权
*详细原因:
您可能还需要
Q.为什么我点的下载下不了,但积分却被扣了
A. 由于下载人数众多,下载服务器做了并发的限制。若发现下载不了,请稍后再试,多次下载是不会重复扣分的。
Q.我的积分不多了,如何获取积分?
A. 获得积分,详细见。
完成任务获取积分。
评价资源返积分。
论坛可用分兑换下载积分。
第一次绑定手机,将获得5个C币,C币可。
下载资源意味着您已经同意遵守以下协议
资源的所有权益归上传用户所有
未经权益所有人同意,不得将资源中的内容挪作商业或盈利用途
CSDN下载频道仅提供交流平台,并不能对任何下载资源负责
下载资源中如有侵权或不适当内容,
本站不保证本站提供的资源的准确性,安全性和完整性,同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
开发技术下载排行
积分不够下载该资源
如何快速获得积分?
你下载资源过于频繁,请输入验证码
如何快速获得积分?
你已经下载过该资源,再次下载不需要扣除积分
java swing
输入框小程序
所需积分:10
剩余积分:
VIP会员,免积分下载
会员到期时间:日
剩余下载次数:1000
VIP服务公告:java Swing设置文本框文字颜色和字体
在java中文本编辑器单独设置文字的控件有个JTextPane,而通常使用的JTextArea似乎不能设置所选文字的颜色和字体。
//实例化一个文本编辑的控件
JTextPane editorPane=new JTextPane();
//根据所选颜色进行设置
JColorChooser colorChooser=new JColorChooser();
//得到所选颜色&&
Color color= colorChooser.showDialog(null, &字体颜色&, Color.BLACK);
//得到编辑器中的文档&&
Document document= editorPane.getDocument();
//添加一个可以设置样式的类
&&&& StyleContext&& sc&& =&& StyleContext.getDefaultStyleContext();
//为所添加的样式类添加字体颜色
&&&& AttributeSet&& aset&& =&& sc.addAttribute(SimpleAttributeSet.EMPTY,StyleConstants.Foreground, color);
&&&& Font font=new Font(&隶书&,Font.BOLD,30);
//为添加的样式类添加字体&&&
aset=sc.addAttribute(aset, StyleConstants.Family, font.getFamily());
&& //设置字体的大小
& aset=sc.addAttribute(aset, StyleConstants.FontSize, 30);
&&&& int start= editorPane.getSelectionStart();
&&&& int end=editorPane.getSelectionEnd();
&&&& String str= document.getText(start,end-start);
//由于没找到直接设置所选字的方法,只有先移除原来的字符串&&&
document.remove(start, end-start);
//重新插入字符串,并按新设置的样式进行插入
&&&& document.insertString(start, str, aset);
&&& } catch (BadLocationException e1) {
&&&& // TODO Auto-generated catch block
&&&& e1.printStackTrace();
摘自 zyqyz520的专栏
您对本文章有什么意见或着疑问吗?请到您的关注和建议是我们前行的参考和动力&&
您的浏览器不支持嵌入式框架,或者当前配置为不显示嵌入式框架。

我要回帖

更多关于 java弹出输入框 的文章

 

随机推荐