如何在JWindow中使用JTextField?

new1943 2006-12-10 02:11:03
每次在JWindow中使用JTextField,但JTextField总是不能编辑状态。。真够郁闷,
不知道你们有没发现这个问题,还希望高手能解答。。

import java.awt.*;
import javax.swing.*;

public class Test
{
public static void main(String[] args)
{
JWindow window = new JWindow(); // this doesn't work
window.getContentPane().add( new JTextField(10), BorderLayout.NORTH );
window.getContentPane().add( new JButton("Button") );
window.getContentPane().add( new JCheckBox("CheckBox"), BorderLayout.SOUTH );
window.setBounds(300, 300, 200, 200);
window.setVisible(true);
}
}

可以运行下试试。。别的都可以用就是JTextField不能。。
...全文
304 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
lixiaoxue85 2006-12-17
  • 打赏
  • 举报
回复
用JPANEL放在JFRAME上
new1943 2006-12-12
  • 打赏
  • 举报
回复
谢谢~~哎。。找了半天还是不能用啊~郁闷哦。。
fool_leave 2006-12-11
  • 打赏
  • 举报
回复

我也很少用JWindow。如果JWindow构造函数中加上JFrame的话,焦点还是可以得到的,问题是输入"."好像可以,但其他字符不行。估计是java的一个bug。如果不是必须用的话,尽量不要用JWindow,子类JFrame或者JDialog。
mq612 2006-12-10
  • 打赏
  • 举报
回复
JWindow不能获取焦点的,所以在它上面的文本组件将不能输入内容。
fool_leave 2006-12-10
  • 打赏
  • 举报
回复
不要用JWindow,用JFrame
import java.awt.BorderLayout; import java.awt.Container; import java.awt.Dimension; import java.awt.Toolkit; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.IOException; import javax.swing.Box; import javax.swing.JButton; import javax.swing.JEditorPane; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JScrollPane; import javax.swing.JTextField; import javax.swing.JToolBar; import javax.swing.JWindow; import javax.swing.UIManager; import javax.swing.UnsupportedLookAndFeelException; import javax.swing.event.HyperlinkEvent; import javax.swing.event.HyperlinkListener; public class WebBrowser extends JFrame implements HyperlinkListener,ActionListener{ JToolBar bar=new JToolBar(); JTextField jurl=new JTextField(60); JEditorPane jEditorPanel=new JEditorPane(); JScrollPane scrollPane=new JScrollPane(jEditorPanel); // JWindow window=new JWindow(WebBrowser.this); // Toolkit toolkit=Toolkit.getDefaultToolkit(); JLabel label=new JLabel("地址"); JButton button=new JButton("转向"); Box adress=Box.createHorizontalBox(); public WebBrowser(){ this.setSize(1000,800); setResizable(false); this.setDefaultCloseOperation(EXIT_ON_CLOSE); Container contentPane=getContentPane(); scrollPane.setPreferredSize(new Dimension(100,500)); contentPane.add(scrollPane,BorderLayout.CENTER); bar.add(label); bar.add(jurl); bar.add(button); contentPane.add(bar,BorderLayout.NORTH); button.addActionListener(this); jurl.addActionListener(this); } public static void main(String[] args) { try { UIManager.setLookAndFeel( UIManager.getCrossPlatformLookAndFeelClassName() ); } catch (Exception e) { } WebBrowser webBrowser=new WebBrowser(); webBrowser.pack(); webBrowser.setVisible(true); } @Override public void hyperlinkUpdate(HyperlinkEvent e) { // TODO Auto-generated method stub } @Override public void actionPerformed(ActionEvent e) { String url=""; if(e.getSource()==button){ url=jurl.getText(); if(url.length()>0&&url.startsWith("http://")){ try { jEditorPanel.setPage(url); jEditorPanel.setEditable(false); jEditorPanel.revalidate(); } catch (IOException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } } } } }
public class WebBrowser extends JFrame implements HyperlinkListener,ActionListener{ //建立工具栏用来显示地址栏 JToolBar bar=new JToolBar (); //建立网页显示界面 JTextField jurl = new JTextField (60); JEditorPane jEditorPane1 = new JEditorPane (); JScrollPane scrollPane = new JScrollPane (jEditorPane1); JFileChooser chooser=new JFileChooser (); JFileChooser chooser1=new JFileChooser (); String htmlSource; JWindow window = new JWindow (WebBrowser.this); JButton button2=new JButton ("窗口还原"); Toolkit toolkit = Toolkit.getDefaultToolkit(); //建立菜单栏 JMenuBar jMenuBar1 = new JMenuBar(); //建立菜单组 JMenu fileMenu = new JMenu ("文件(F)"); //建立菜单项 JMenuItem saveAsItem = new JMenuItem ("另存为(A)..."); JMenuItem exitItem=new JMenuItem ("退出(I)"); JMenu editMenu=new JMenu ("编辑(E)"); JMenuItem backItem=new JMenuItem ("后退"); JMenuItem forwardItem=new JMenuItem ("前进"); JMenu viewMenu=new JMenu ("视图(V)"); JMenuItem fullscreenItem=new JMenuItem ("全屏(U)"); JMenuItem sourceItem=new JMenuItem ("查看源码(C)"); JMenuItem reloadItem=new JMenuItem ("刷新(R)"); //建立工具栏 JToolBar toolBar = new JToolBar(); //建立工具栏的按钮组件 JButton picSave = new JButton("另存为"); JButton picBack = new JButton("后退"); JButton picForward = new JButton("前进"); JButton picView = new JButton("查看源代码"); JButton picExit = new JButton("退出"); JLabel label=new JLabel ("地址"); JButton button=new JButton ("转向"); Box adress=Box.createHorizontalBox (); //ArrayList对象,用来存放历史地址 private ArrayList history=new ArrayList(); //整型变量,表示历史地址的访问顺序 private int historyIndex; /** **构造函数 **初始化图形用户界面 */ public WebBrowser(){ setTitle ("网页浏览器"); setResizable(false); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //为jEditorPane1添加事件侦听 jEditorPane1.addHyperlinkListener (this); //为组件fileMenu设置热键‘F’ fileMenu.setMnemonic('F'); saveAsItem.setMnemonic ('S'); //为“另存为”组件设置快捷键为ctrl+s saveAsItem.setAccelerator (KeyStroke.getKeyStroke (KeyEvent.VK_S,InputEvent.CTRL_MASK)); exitItem.setMnemonic('Q'); exitItem.setAccelerator (KeyStroke.getKeyStroke (KeyEvent.VK_E,InputEvent.CTRL_MASK)); //将菜单项saveAsItem加入到菜单组fileMenu fileMenu.add (saveAsItem); //在菜单项添加隔离 fileMenu.addSeparator (); fileMenu.add (exitItem); backItem.setMnemonic ('B'); backItem.setAccelerator (KeyStroke.getKeyStroke (KeyEvent.VK_Z,InputEvent.CTRL_MASK)); forwardItem.setMnemonic('D'); forwardItem.setAccelerator (KeyStroke.getKeyStroke (KeyEvent.VK_P,InputEvent.CTRL_MASK)); editMenu.setMnemonic('E'); editMenu.add (backItem); editMenu.add (forwardItem); viewMenu.setMnemonic('V'); fullscreenItem.setMnemonic('U'); fullscreenItem.setAccelerator (KeyStroke.getKeyStroke (KeyEvent.VK_U,InputEvent.CTRL_MASK)); sourceItem.setMnemonic('C'); sourceItem.setAccelerator (KeyStroke.getKeyStroke (KeyEvent.VK_C,InputEvent.CTRL_MASK)); reloadItem.setMnemonic('R'); reloadItem.setAccelerator (KeyStroke.getKeyStroke (KeyEvent.VK_R,InputEvent.CTRL_MASK)); Container contentPane=getContentPane (); //设置大小 scrollPane.setPreferredSize(new Dimension(100,500)); contentPane.add (scrollPane, BorderLayout.SOUTH); //在工具栏添加按钮组件 toolBar.add(picSave); toolBar.addSeparator(); toolBar.add(picBack); toolBar.add(picForward); toolBar.addSeparator(); toolBar.add(picView); toolBar.addSeparator(); toolBar.add(picExit); contentPane.add (bar,BorderLayout.CENTER); contentPane.add(toolBar,BorderLayout.NORTH); viewMenu.add (fullscreenItem); viewMenu.add (sourceItem); viewMenu.addSeparator (); viewMenu.add (reloadItem); jMenuBar1.add (fileMenu); jMenuBar1.add (editMenu); jMenuBar1.add (viewMenu); setJMenuBar (jMenuBar1); adress.add (label); adress.add (jurl); adress.add (button); bar.add (adress); //为组件添加事件监听 saveAsItem.addActionListener(this); picSave.addActionListener(this); exitItem.addActionListener(this); picExit.addActionListener(this); backItem.addActionListener(this); picBack.addActionListener(this); forwardItem.addActionListener(this); picForward.addActionListener(this); fullscreenItem.addActionListener(this); sourceItem.addActionListener(this); picView.addActionListener(this); reloadItem.addActionListener(this); button.addActionListener(this); jurl.addActionListener(this); }

62,615

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧