gpt4 book ai didi

java - 如何编辑JTextField?

转载 作者:行者123 更新时间:2023-12-02 04:30:15 24 4
gpt4 key购买 nike

我想编写一个简单的 Swing 应用程序,底部有一个按钮和一个文本字段。我正在使用 JTextField 但它不可点击。我在网上搜索过,但找不到解决方案。有问题How to Set Focus on JTextField? ,我发现了以下内容:

addWindowListener( new WindowAdapter() {
public void windowOpened( WindowEvent e ){
entry.requestFocus();
}
});

但这没有帮助。在另一个问题( How do you set a focus on Textfield in Swing? )中,我找到了 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));

关于java - 如何编辑JTextField?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31570839/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com