我是 Java 初学者,刚刚学习如何为 GUI 编写代码。我担心的是我没有得到能够根据输入函数显示各种逻辑门(AND、OR 等)的部分。我已经编写了布尔简化的代码,现在我要做的就是在逻辑图中显示它。但我真的不知道该怎么做,因为我是 GUI 新手。任何有关此的方向/链接/教程都将非常有帮助。提前谢谢。
问问题
1740 次
3 回答
1
看看这个例子。所做的是将逻辑与 GUI 分开。BooleanSimplification
我使用了一个只有一个方法的类的简单示例。所有该方法确实将两个数字相加并返回结果。
你应该感兴趣的是我所做的只是BooleanExpresson
在 GUI 中创建一个类的实例,而我所要做的就是调用它的方法来获取逻辑操作方法。为了使 GUI 更易于管理,这就是您想要的方式。将数据和逻辑与 GUI 分开。
首先你可以看到BooleanSimplification
类
class BooleanSimplification {
public BooleanSimplification() {
}
public double add(double num1, double num2) {
return num1 + num2;
}
}
然后是我的 GUI 类。它就是一个简单的计算器,它有两个输入字段和一个结果输入字段和计算按钮
您可以复制并粘贴以下代码。尝试并按照代码中的注释进行操作
import java.awt.BorderLayout;
import java.awt.GridLayout;
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.SwingUtilities;
public class TestRun extends JPanel {
JLabel jlblnum1 = new JLabel("Number1"); // number 1 label
JLabel jlblnum2 = new JLabel("Number2"); // number 2 label
JLabel jlblresult= new JLabel("result"); // result label
JTextField jtfnum1 = new JTextField(10); // number1 text field
JTextField jtfnum2 = new JTextField(10); // number 2 text field
JTextField jtfresult = new JTextField(10); // result text field
JButton getResult = new JButton("Get Result"); // get result button
// instance of class here
BooleanSimplification bs = new BooleanSimplification(); // the class
public TestRun() {
JPanel panel = new JPanel(new GridLayout(3, 2)); // panel to hold components
panel.add(jlblnum1);
panel.add(jtfnum1);
panel.add(jlblnum2);
panel.add(jtfnum2);
panel.add(jlblresult);
panel.add(jtfresult);
setLayout(new BorderLayout());
add(panel, BorderLayout.CENTER);
add(getResult, BorderLayout.SOUTH);
// here is where everything goes on.
getResult.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
double num1 = Double.parseDouble(jtfnum1.getText()); // get number from text field
double num2 = Double.parseDouble(jtfnum2.getText()); // get number from text field
double result = bs.add(num1, num2); // call the method from the BooleanSimplification class to handle my logic
jtfresult.setText(String.valueOf(result)); // set the text of result with the result from the method
}
});
}
public static void createAndShowGui() {
JFrame frame = new JFrame();
frame.add(new TestRun());
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLocationRelativeTo(null);
frame.pack();
frame.setVisible(true);
}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
createAndShowGui();
}
});
}
}
class BooleanSimplification {
public BooleanSimplification() {
}
public double add(double num1, double num2) {
return num1 + num2;
}
}
一旦你创建了一个类的实例,你就可以在 GUI 中使用它的所有数据和方法
于 2013-12-21T09:07:32.877 回答
1
使用摆动。学起来并不难。Netbeans 内置了 swing gui 构建器。你可以用那个。http://docs.oracle.com/javase/tutorial/uiswing/。
于 2013-12-21T09:44:45.197 回答