gpt4 book ai didi

java - JTextField 输入输出

转载 作者:行者123 更新时间:2023-11-29 03:42:04 26 4
gpt4 key购买 nike

我正在尝试用 Java 设计一个海里计算器。

我能够通过控制台创建和运行它,但我在学习如何在 JFrames 中执行它时遇到了麻烦。

我基本上想做的是:

有两个文本字段和一个按钮,一个文本字段英里,一个用于海里,当您在一个文本字段中输入数量然后按下按钮时,结果将显示在另一个字段中。

我已经在下面粘贴了我的代码

不知道下一步该做什么

package Mile_Conversion;

import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;


import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.SwingConstants;

public class OwnWindow implements ActionListener{



public static void main(String[] args) {
MyJFrame();

}

public static void MyJFrame() {

//JLabel
JLabel start = new JLabel("Enter the amount below to calculate");
start.setBounds(/*x*/70, -65/*Y*/, 270, 150); // x, y, width, height x across, y down
JLabel milecon = new JLabel("Miles");
milecon.setBounds(154, 55, 50, 150);
JLabel nautcon = new JLabel("Nautical Miles");
nautcon.setBounds(135, -15, 150, 150);

//JTextField
JTextField miles = new JTextField();
miles.setBounds(100, 140, 150, 25);
JTextField nautical = new JTextField();
nautical.setBounds(100, 70, 150, 25);

double mile, nautmile;

/*
mile = nautmile * 0.868;

nautmile = mile * 1.150;
*/

//JButton
JButton convert = new JButton("Convert");
convert.setBounds(250, 200, 90, 25);


//JFrame
JFrame window = new JFrame("Milage Conversion");
window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
window.setSize(400, 300);
window.setVisible(true);
window.setLayout(null);
window.setResizable(false);
window.add(start);
window.add(miles);
window.add(nautical);
window.add(convert);
window.add(milecon);
window.add(nautcon);

}

@Override
public void actionPerformed(ActionEvent e) {


}
}

最佳答案

欢迎来到可变字体、分辨率和 DPI 的奇妙世界,在这里,您屏幕上的显示效果将永远与其他屏幕不匹配(好吧,这有点夸张,但感觉就是这样 :P)

在这个世界上,布局管理器是您的 friend 。它们将为您节省很多很多时间的挫折和折磨。

我建议您通读一遍;

这是我对你正在尝试做的事情的看法......

public class TestConvertDistance {

public static void main(String[] args) {
new TestConvertDistance();
}

public TestConvertDistance() {

EventQueue.invokeLater(new Runnable() {

@Override
public void run() {
try {
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
} catch (ClassNotFoundException ex) {
} catch (InstantiationException ex) {
} catch (IllegalAccessException ex) {
} catch (UnsupportedLookAndFeelException ex) {
}

JFrame frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLayout(new BorderLayout());
frame.add(new DistancePane());
frame.pack();
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}
});
}

protected class DistancePane extends JPanel {

private JLabel lblInstruct;
private JLabel lblMiles;
private JLabel lblNauticalMiles;

private JTextField fldMiles;
private JTextField fldNauticalMiles;

private JButton btnCalculate;

public DistancePane() {

lblInstruct = new JLabel("Enter the amount below to calculate");
lblMiles = new JLabel("Miles");
lblNauticalMiles = new JLabel("Nautical Miles");

fldMiles = new JTextField(8);
fldNauticalMiles = new JTextField(8);

btnCalculate = new JButton("Convert");

setLayout(new GridBagLayout());
GridBagConstraints gbc = new GridBagConstraints();
gbc.gridx = 0;
gbc.gridy = 0;
gbc.insets = new Insets(2, 2, 2, 2);
gbc.anchor = GridBagConstraints.WEST;
gbc.gridwidth = GridBagConstraints.REMAINDER;
add(lblInstruct, gbc);

gbc.gridx = 0;
gbc.gridy++;
gbc.anchor = GridBagConstraints.WEST;
gbc.gridwidth = 1;
add(lblMiles, gbc);

gbc.gridy++;
add(lblNauticalMiles, gbc);

gbc.gridx = 1;
gbc.gridy = 1;
add(fldMiles, gbc);

gbc.gridy++;
add(fldNauticalMiles, gbc);

gbc.gridx = 0;
gbc.gridy++;
gbc.anchor = GridBagConstraints.CENTER;
gbc.gridwidth = GridBagConstraints.REMAINDER;
add(btnCalculate, gbc);

btnCalculate.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// Do your calculation here...
}
});

}

}

}

请注意,我使用了 GridBagLayout,这是核心 API 中最强大和最复杂的布局管理器之一,所以如果一开始看起来很困惑,请不要担心 ;)

关于java - JTextField 输入输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12713052/

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