- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有两个独立的类:SubDimensions.java 和 Subtraction.java。
我想根据 SubDimensions 类的组合框中的所选项目启用 Subtraction 类中的某些组件。我尝试在 SubDimensions 类中创建 switch 语句并在 Subtraction 类中创建 boolean 函数,但它不起作用。我想知道可能是什么问题。
SubDimensions.java
package gui;
import java.awt.EventQueue;
import javax.swing.JFrame;
import javax.swing.JTextField;
import javax.swing.JLabel;
import javax.swing.JComboBox;
import javax.swing.DefaultComboBoxModel;
import javax.swing.JButton;
import javax.swing.SwingConstants;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import javax.swing.JPanel;
public class SubDimensions {
public JFrame frmSubDimensions;
public JComboBox comboBoxA;
/**
* Launch the application.
*/
public static void SubDimensions() {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
SubDimensions window = new SubDimensions();
window.frmSubDimensions.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the application.
*/
public SubDimensions() {
initialize();
}
/**
* Initialize the contents of the frame.
*/
public void initialize() {
frmSubDimensions = new JFrame();
frmSubDimensions.setTitle("VECTOR CALCULATOR");
frmSubDimensions.setBounds(100, 100, 330, 200);
frmSubDimensions.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frmSubDimensions.getContentPane().setLayout(null);
JLabel lblVectorDimension = new JLabel("Vector dimensions:");
lblVectorDimension.setHorizontalAlignment(SwingConstants.CENTER);
lblVectorDimension.setBounds(10, 21, 294, 14);
frmSubDimensions.getContentPane().add(lblVectorDimension);
comboBoxA = new JComboBox();
comboBoxA.setModel(new DefaultComboBoxModel(new String[] {"2x1", "3x1", "4x1", "5x1", "6x1", "7x1", "8x1", "9x1", "10x1"}));
comboBoxA.setBounds(110, 46, 95, 20);
frmSubDimensions.getContentPane().add(comboBoxA);
JButton btnNewButton = new JButton("Okay");
btnNewButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
Subtraction subtraction = new Subtraction();
subtraction.Subtraction();
frmSubDimensions.setVisible(false);
switch(comboBoxA.getSelectedItem().toString()){
case "3x1":{
subtraction.x3Visibility(true);
break;}
/*case "4x1":
lblX4.setEnabled(true);
break;*/
default:{
subtraction.x3Visibility(false);
break;}
}
}
});
btnNewButton.setBounds(62, 108, 89, 23);
frmSubDimensions.getContentPane().add(btnNewButton);
JButton btnCancel = new JButton("Cancel");
btnCancel.setBounds(167, 108, 89, 23);
frmSubDimensions.getContentPane().add(btnCancel);
}
}
减法.java
package gui;
import java.awt.EventQueue;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;
import javax.swing.JButton;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import javax.swing.SwingConstants;
import javax.swing.JTextArea;
public class Subtraction {
public JFrame frmSubtraction;
public JTextField textFieldx1;
public JTextField textFieldx2;
public JTextField textFieldx3;
public JTextField textFieldx4;
public JTextField textFieldx5;
public JTextField textFieldx6;
public JTextField textFieldx7;
public JTextField textFieldx8;
public JTextField textFieldx9;
public JTextField textFieldx10;
public JTextField textFieldy1;
public JTextField textFieldy2;
public JTextField textFieldy3;
public JTextField textFieldy4;
public JTextField textFieldy5;
public JTextField textFieldy6;
public JTextField textFieldy7;
public JTextField textFieldy8;
public JTextField textFieldy9;
public JTextField textFieldy10;
public JLabel lblX1;
public JLabel lblX2;
public JLabel lblX3;
public JLabel lblX4;
public JLabel lblX5;
public JLabel lblX6;
public JLabel lblX7;
public JLabel lblX8;
public JLabel lblX9;
public JLabel lblX10;
public JLabel lblY1;
public JLabel lblY2;
public JLabel lblY3;
public JLabel lblY4;
public JLabel lblY5;
public JLabel lblY6;
public JLabel lblY7;
public JLabel lblY8;
public JLabel lblY9;
public JLabel lblY10;
/**
* Launch the application.
*/
public static void Subtraction() {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
Subtraction window = new Subtraction();
window.frmSubtraction.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the application.
*/
public Subtraction() {
initialize();
}
/**
* Initialize the contents of the frame.
*/
public void initialize(){
SubDimensions subDimensions = new SubDimensions();
frmSubtraction = new JFrame();
frmSubtraction.setTitle("VECTOR CALCULATOR");
frmSubtraction.setBounds(100, 100, 400, 400);
frmSubtraction.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frmSubtraction.getContentPane().setLayout(null);
lblX1 = new JLabel("x1");
lblX1.setBounds(10, 32, 20, 14);
frmSubtraction.getContentPane().add(lblX1);
textFieldx1 = new JTextField();
textFieldx1.setBounds(40, 29, 50, 20);
frmSubtraction.getContentPane().add(textFieldx1);
textFieldx1.setColumns(10);
lblX2 = new JLabel("x2");
lblX2.setBounds(10, 60, 20, 14);
frmSubtraction.getContentPane().add(lblX2);
textFieldx2 = new JTextField();
textFieldx2.setColumns(10);
textFieldx2.setBounds(40, 57, 50, 20);
frmSubtraction.getContentPane().add(textFieldx2);
lblX3 = new JLabel("x3");
lblX3.setEnabled(false);
lblX3.setBounds(10, 88, 20, 14);
frmSubtraction.getContentPane().add(lblX3);
textFieldx3 = new JTextField();
textFieldx3.setEnabled(false);
textFieldx3.setColumns(10);
textFieldx3.setBounds(40, 85, 50, 20);
frmSubtraction.getContentPane().add(textFieldx3);
lblX4 = new JLabel("x4");
lblX4.setEnabled(false);
lblX4.setBounds(10, 116, 20, 14);
frmSubtraction.getContentPane().add(lblX4);
textFieldx4 = new JTextField();
textFieldx4.setEnabled(false);
textFieldx4.setColumns(10);
textFieldx4.setBounds(40, 113, 50, 20);
frmSubtraction.getContentPane().add(textFieldx4);
lblX5 = new JLabel("x5");
lblX5.setEnabled(false);
lblX5.setBounds(10, 144, 20, 14);
frmSubtraction.getContentPane().add(lblX5);
textFieldx5 = new JTextField();
textFieldx5.setEnabled(false);
textFieldx5.setColumns(10);
textFieldx5.setBounds(40, 141, 50, 20);
frmSubtraction.getContentPane().add(textFieldx5);
lblX6 = new JLabel("x6");
lblX6.setEnabled(false);
lblX6.setBounds(10, 172, 20, 14);
frmSubtraction.getContentPane().add(lblX6);
textFieldx6 = new JTextField();
textFieldx6.setEnabled(false);
textFieldx6.setColumns(10);
textFieldx6.setBounds(40, 169, 50, 20);
frmSubtraction.getContentPane().add(textFieldx6);
lblX7 = new JLabel("x7");
lblX7.setEnabled(false);
lblX7.setBounds(10, 200, 20, 14);
frmSubtraction.getContentPane().add(lblX7);
textFieldx7 = new JTextField();
textFieldx7.setEnabled(false);
textFieldx7.setColumns(10);
textFieldx7.setBounds(40, 197, 50, 20);
frmSubtraction.getContentPane().add(textFieldx7);
lblX8 = new JLabel("x8");
lblX8.setEnabled(false);
lblX8.setBounds(10, 228, 20, 14);
frmSubtraction.getContentPane().add(lblX8);
textFieldx8 = new JTextField();
textFieldx8.setEnabled(false);
textFieldx8.setColumns(10);
textFieldx8.setBounds(40, 225, 50, 20);
frmSubtraction.getContentPane().add(textFieldx8);
lblX9 = new JLabel("x9");
lblX9.setEnabled(false);
lblX9.setBounds(10, 256, 20, 14);
frmSubtraction.getContentPane().add(lblX9);
textFieldx9 = new JTextField();
textFieldx9.setEnabled(false);
textFieldx9.setColumns(10);
textFieldx9.setBounds(40, 253, 50, 20);
frmSubtraction.getContentPane().add(textFieldx9);
lblX10 = new JLabel("x10");
lblX10.setEnabled(false);
lblX10.setBounds(10, 281, 30, 14);
frmSubtraction.getContentPane().add(lblX10);
textFieldx10 = new JTextField();
textFieldx10.setEnabled(false);
textFieldx10.setColumns(10);
textFieldx10.setBounds(40, 281, 50, 20);
frmSubtraction.getContentPane().add(textFieldx10);
lblY1 = new JLabel("y1");
lblY1.setBounds(126, 32, 20, 14);
frmSubtraction.getContentPane().add(lblY1);
textFieldy1 = new JTextField();
textFieldy1.setColumns(10);
textFieldy1.setBounds(156, 29, 50, 20);
frmSubtraction.getContentPane().add(textFieldy1);
lblY2 = new JLabel("y2");
lblY2.setBounds(126, 60, 20, 14);
frmSubtraction.getContentPane().add(lblY2);
textFieldy2 = new JTextField();
textFieldy2.setColumns(10);
textFieldy2.setBounds(156, 57, 50, 20);
frmSubtraction.getContentPane().add(textFieldy2);
textFieldy3 = new JTextField();
textFieldy3.setEnabled(false);
textFieldy3.setColumns(10);
textFieldy3.setBounds(156, 85, 50, 20);
frmSubtraction.getContentPane().add(textFieldy3);
lblY3 = new JLabel("y3");
lblY3.setEnabled(false);
lblY3.setBounds(126, 88, 20, 14);
frmSubtraction.getContentPane().add(lblY3);
lblY4 = new JLabel("y4");
lblY4.setEnabled(false);
lblY4.setBounds(126, 116, 20, 14);
frmSubtraction.getContentPane().add(lblY4);
textFieldy4 = new JTextField();
textFieldy4.setEnabled(false);
textFieldy4.setColumns(10);
textFieldy4.setBounds(156, 113, 50, 20);
frmSubtraction.getContentPane().add(textFieldy4);
textFieldy5 = new JTextField();
textFieldy5.setEnabled(false);
textFieldy5.setColumns(10);
textFieldy5.setBounds(156, 141, 50, 20);
frmSubtraction.getContentPane().add(textFieldy5);
lblY5 = new JLabel("y5");
lblY5.setEnabled(false);
lblY5.setBounds(126, 144, 20, 14);
frmSubtraction.getContentPane().add(lblY5);
lblY6 = new JLabel("y6");
lblY6.setEnabled(false);
lblY6.setBounds(126, 172, 20, 14);
frmSubtraction.getContentPane().add(lblY6);
textFieldy6 = new JTextField();
textFieldy6.setEnabled(false);
textFieldy6.setColumns(10);
textFieldy6.setBounds(156, 169, 50, 20);
frmSubtraction.getContentPane().add(textFieldy6);
textFieldy7 = new JTextField();
textFieldy7.setEnabled(false);
textFieldy7.setColumns(10);
textFieldy7.setBounds(156, 197, 50, 20);
frmSubtraction.getContentPane().add(textFieldy7);
lblY7 = new JLabel("y7");
lblY7.setEnabled(false);
lblY7.setBounds(126, 200, 20, 14);
frmSubtraction.getContentPane().add(lblY7);
lblY8 = new JLabel("y8");
lblY8.setEnabled(false);
lblY8.setBounds(126, 228, 20, 14);
frmSubtraction.getContentPane().add(lblY8);
textFieldy8 = new JTextField();
textFieldy8.setEnabled(false);
textFieldy8.setColumns(10);
textFieldy8.setBounds(156, 225, 50, 20);
frmSubtraction.getContentPane().add(textFieldy8);
lblY9 = new JLabel("y9");
lblY9.setEnabled(false);
lblY9.setBounds(126, 256, 20, 14);
frmSubtraction.getContentPane().add(lblY9);
textFieldy9 = new JTextField();
textFieldy9.setEnabled(false);
textFieldy9.setColumns(10);
textFieldy9.setBounds(156, 253, 50, 20);
frmSubtraction.getContentPane().add(textFieldy9);
textFieldy10 = new JTextField();
textFieldy10.setEnabled(false);
textFieldy10.setColumns(10);
textFieldy10.setBounds(156, 281, 50, 20);
frmSubtraction.getContentPane().add(textFieldy10);
lblY10 = new JLabel("y10");
lblY10.setEnabled(false);
lblY10.setBounds(126, 281, 30, 14);
frmSubtraction.getContentPane().add(lblY10);
JLabel lblVectorU = new JLabel("Vector u:");
lblVectorU.setBounds(10, 11, 80, 14);
frmSubtraction.getContentPane().add(lblVectorU);
JLabel lblVectorV = new JLabel("Vector v:");
lblVectorV.setBounds(126, 11, 80, 14);
frmSubtraction.getContentPane().add(lblVectorV);
JTextArea textAreaZ = new JTextArea();
textAreaZ.setEditable(false);
textAreaZ.setBounds(251, 27, 123, 274);
frmSubtraction.getContentPane().add(textAreaZ);
JButton btnNewButton = new JButton("Calculate");
btnNewButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
int x1 = Integer.parseInt(textFieldx1.getText());
int x2 = Integer.parseInt(textFieldx2.getText());
int x3 = Integer.parseInt(textFieldx3.getText());
int x4 = Integer.parseInt(textFieldx4.getText());
int x5 = Integer.parseInt(textFieldx5.getText());
int x6 = Integer.parseInt(textFieldx6.getText());
int x7 = Integer.parseInt(textFieldx7.getText());
int x8 = Integer.parseInt(textFieldx8.getText());
int x9 = Integer.parseInt(textFieldx9.getText());
int x10 = Integer.parseInt(textFieldx10.getText());
int y1 = Integer.parseInt(textFieldy1.getText());
int y2 = Integer.parseInt(textFieldy2.getText());
int y3 = Integer.parseInt(textFieldy3.getText());
int y4 = Integer.parseInt(textFieldy4.getText());
int y5 = Integer.parseInt(textFieldy5.getText());
int y6 = Integer.parseInt(textFieldy6.getText());
int y7 = Integer.parseInt(textFieldy7.getText());
int y8 = Integer.parseInt(textFieldy8.getText());
int y9 = Integer.parseInt(textFieldy9.getText());
int y10 = Integer.parseInt(textFieldy10.getText());
int z1 = x1 - y1;
int z2 = x2 - y2;
int z3 = x3 - y3;
int z4 = x4 - y4;
int z5 = x5 - y5;
int z6 = x6 - y6;
int z7 = x7 - y7;
int z8 = x8 - y8;
int z9 = x9 - y9;
int z10 = x10 - y10;
textAreaZ.setText(Integer.toString(z1) + "\n" + Integer.toString(z2) + "\n" + Integer.toString(z3) + "\n" + Integer.toString(z4) + "\n" + Integer.toString(z5) + "\n" + Integer.toString(z6) + "\n" + Integer.toString(z7) + "\n" + Integer.toString(z8) + "\n" + Integer.toString(z9) + "\n" + Integer.toString(z10));
}
});
btnNewButton.setBounds(87, 327, 89, 23);
frmSubtraction.getContentPane().add(btnNewButton);
JButton btnCancel = new JButton("Cancel");
btnCancel.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
subDimensions.SubDimensions();
frmSubtraction.setVisible(false);
}
});
btnCancel.setBounds(208, 327, 89, 23);
frmSubtraction.getContentPane().add(btnCancel);
JLabel lblVectorUv = new JLabel("Vector u+v:");
lblVectorUv.setBounds(251, 11, 123, 14);
frmSubtraction.getContentPane().add(lblVectorUv);
}
public void x3Visibility (boolean enabled){
lblX3.setEnabled(enabled);
textFieldx3.setEnabled(enabled);
lblY3.setEnabled(enabled);
textFieldy3.setEnabled(enabled);
}
/*public void x4Visibility (boolean visibility){
lblX4.setEnabled(true);
textFieldx4.setEnabled(true);
lblY4.setEnabled(true);
textFieldy4.setEnabled(true);
}*/
}
最佳答案
您没有在 Subtraction.java 中使用参数 enabled
,请更改为:
public void x3Visibility (boolean enabled){
lblX3.setEnabled(enabled);
textFieldx3.setEnabled(enabled);
lblY3.setEnabled(enabled);
textFieldy3.setEnabled(enabled);
}
编辑:看来您缺乏对面向对象编程(OOP)的基本了解。
当你打电话时
Subtraction subtraction = new Subtraction();
subtraction.Subtraction();
您创建了另一个名为 window 的 Subtraction
实例:
public static void Subtraction() {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
Subtraction window = new Subtraction();
window.frmSubtraction.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
减法
不可见,而窗口
可见。但 window 不在 actionPerformed
的范围内,因此您无法访问它。目前,您可以将 actionPerformed
更改为以下内容来暂时解决您的问题。但我强烈建议您:1)重新审视 OOP 的概念2)尝试为标签和文本字段使用数组或集合,而不是一一硬编码它们
public void actionPerformed(ActionEvent e) {
Subtraction subtraction = new Subtraction();
subtraction.frmSubtraction.setVisible(true);
frmSubDimensions.setVisible(false);
switch(comboBoxA.getSelectedItem().toString()){
case "3x1":{
subtraction.x3Visibility(true);
break;}
/*case "4x1":
lblX4.setEnabled(true);
break;*/
default:{
subtraction.x3Visibility(false);
break;}
}
}
关于java - 根据另一个类的组合框中的所选项目启用标签和文本字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33757863/
我正在编写一个具有以下签名的 Java 方法。 void Logger(Method method, Object[] args); 如果一个方法(例如 ABC() )调用此方法 Logger,它应该
我是 Java 新手。 我的问题是我的 Java 程序找不到我试图用作的图像文件一个 JButton。 (目前这段代码什么也没做,因为我只是得到了想要的外观第一的)。这是我的主课 代码: packag
好的,今天我在接受采访,我已经编写 Java 代码多年了。采访中说“Java 垃圾收集是一个棘手的问题,我有几个 friend 一直在努力弄清楚。你在这方面做得怎么样?”。她是想骗我吗?还是我的一生都
我的 friend 给了我一个谜语让我解开。它是这样的: There are 100 people. Each one of them, in his turn, does the following
如果我将使用 Java 5 代码的应用程序编译成字节码,生成的 .class 文件是否能够在 Java 1.4 下运行? 如果后者可以工作并且我正在尝试在我的 Java 1.4 应用程序中使用 Jav
有关于why Java doesn't support unsigned types的问题以及一些关于处理无符号类型的问题。我做了一些搜索,似乎 Scala 也不支持无符号数据类型。限制是Java和S
我只是想知道在一个 java 版本中生成的字节码是否可以在其他 java 版本上运行 最佳答案 通常,字节码无需修改即可在 较新 版本的 Java 上运行。它不会在旧版本上运行,除非您使用特殊参数 (
我有一个关于在命令提示符下执行 java 程序的基本问题。 在某些机器上我们需要指定 -cp 。 (类路径)同时执行java程序 (test为java文件名与.class文件存在于同一目录下) jav
我已经阅读 StackOverflow 有一段时间了,现在我才鼓起勇气提出问题。我今年 20 岁,目前在我的家乡(罗马尼亚克卢日-纳波卡)就读 IT 大学。足以介绍:D。 基本上,我有一家提供簿记应用
我有 public JSONObject parseXML(String xml) { JSONObject jsonObject = XML.toJSONObject(xml); r
我已经在 Java 中实现了带有动态类型的简单解释语言。不幸的是我遇到了以下问题。测试时如下代码: def main() { def ks = Map[[1, 2]].keySet()
一直提示输入 1 到 10 的数字 - 结果应将 st、rd、th 和 nd 添加到数字中。编写一个程序,提示用户输入 1 到 10 之间的任意整数,然后以序数形式显示该整数并附加后缀。 public
我有这个 DownloadFile.java 并按预期下载该文件: import java.io.*; import java.net.URL; public class DownloadFile {
我想在 GUI 上添加延迟。我放置了 2 个 for 循环,然后重新绘制了一个标签,但这 2 个 for 循环一个接一个地执行,并且标签被重新绘制到最后一个。 我能做什么? for(int i=0;
我正在对对象 Student 的列表项进行一些测试,但是我更喜欢在 java 类对象中创建硬编码列表,然后从那里提取数据,而不是连接到数据库并在结果集中选择记录。然而,自从我这样做以来已经很长时间了,
我知道对象创建分为三个部分: 声明 实例化 初始化 classA{} classB extends classA{} classA obj = new classB(1,1); 实例化 它必须使用
我有兴趣使用 GPRS 构建车辆跟踪系统。但是,我有一些问题要问以前做过此操作的人: GPRS 是最好的技术吗?人们意识到任何问题吗? 我计划使用 Java/Java EE - 有更好的技术吗? 如果
我可以通过递归方法反转数组,例如:数组={1,2,3,4,5} 数组结果={5,4,3,2,1}但我的结果是相同的数组,我不知道为什么,请帮助我。 public class Recursion { p
有这样的标准方式吗? 包括 Java源代码-测试代码- Ant 或 Maven联合单元持续集成(可能是巡航控制)ClearCase 版本控制工具部署到应用服务器 最后我希望有一个自动构建和集成环境。
我什至不知道这是否可能,我非常怀疑它是否可能,但如果可以,您能告诉我怎么做吗?我只是想知道如何从打印机打印一些文本。 有什么想法吗? 最佳答案 这里有更简单的事情。 import javax.swin
我是一名优秀的程序员,十分优秀!