Java 如何编辑JTextField?
我想编写一个简单的Swing应用程序,底部有一个按钮和一个文本字段。我使用的是Java 如何编辑JTextField?,java,swing,Java,Swing,我想编写一个简单的Swing应用程序,底部有一个按钮和一个文本字段。我使用的是JTextField,但它不可点击。我在网上搜索过,但找不到解决办法。在这个问题上,我发现了以下几点: addWindowListener( new WindowAdapter() { public void windowOpened( WindowEvent e ){ entry.requestFocus(); } }); 但这没有帮助。在另一个问题(
JTextField
,但它不可点击。我在网上搜索过,但找不到解决办法。在这个问题上,我发现了以下几点:
addWindowListener( new WindowAdapter() {
public void windowOpened( WindowEvent e ){
entry.requestFocus();
}
});
但这没有帮助。在另一个问题()中,我找到了Component.requestFocus()
,但这也不起作用。我也试过了
entry.setFocusable(true);
entry.setEditable(true);
entry.setEnabled(true);
没有效果。我的代码:
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.FlowLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.SwingUtilities;
public class StackSample extends JFrame {
public StackSample() {
initUI();
pack();
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
private void initUI() {
JPanel panel = new JPanel(new BorderLayout());
add(panel, BorderLayout.CENTER);
JPanel bottomPanel = new JPanel(new FlowLayout());
panel.add(bottomPanel, BorderLayout.SOUTH);
JButton buttonDraw = new JButton("Draw");
bottomPanel.add(buttonDraw);
JTextField entry = new JTextField();
bottomPanel.add(entry);
setPreferredSize(new Dimension(250, 150));
setLocationRelativeTo(null);
}
private static final long serialVersionUID = 8359448221778584189L;
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
MyApp app = new MyApp();
app.setVisible(true);
}
});
}
}
您的JTextField是可点击的。唯一的问题是它太小了 这是因为您使用的是FlowLayout,这将使组件尽可能小 一种解决方案是简单地切换到允许组件尽可能多地填充空间的布局,例如BoxLayout:
JPanel bottomPanel = new JPanel();
bottomPanel.setLayout(new BoxLayout(bottomPanel,BoxLayout.X_AXIS));
您没有为JTextField指定大小,因此它默认为零个字符宽。尝试使用指定列数的构造函数 还有,什么是MyApp?我看不到任何证据表明您的StackSample曾经被创建或使用过。bottomPanel.setLayout(新的BoxLayout(bottomPanel,BoxLayout.X_轴));帮助;显然应该是“StackSample app=new StackSample();”