我有三个不同的类:Main,WindowFrameDimetnions和ValidationOfNumbers。主要 - 调用WindowFrameDimetnions。它是主类 WindowFrameDimetnions - 调用(以及我试图调用)ValidationOfNumbers。这是为程序创建框架的类,窗格,框的标签和按钮。 ValidationOfNumbers - 是进行数字验证所有计算的人员。基本上这个类验证用户输入的数字在1..100,000的范围内。当按钮功能在另一个类中时如何使用ActionListener
目标: 我们的目标是通过使用一个ActionListener与ValidationOfNumbers WindowFrameDimetnions连接。
package BlueBlueMainFiles;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
public class WindowFrameDimentions extends JFrame{
final static int WINDOW_WITH = 950;//Window with in pixel
final static int WINDOW_HEIGH = 650;//Window height in pixel
static JPanel panel;//use to reference the panel
static JLabel messageLabel;//use to reference the label
static JTextField textField;//use to reference the text field
static JButton calcButton;//use to reference the button
public WindowFrameDimentions() {
// TODO Auto-generated constructor stub
}
public static void windowFrameDimentions(){
//create a new window
JFrame window = new JFrame();
//add a name to the window
window.setTitle("BLUE BLUE");
//set the size of the window
window.setSize(WINDOW_WITH, WINDOW_HEIGH);
//specify what happens when the close button is pressed
window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//BUILD THE PANEL AND ADD IT TO THE FRAME
buildPanel();
//ADD THE PANEL TO THE FRAMES CONTENT PANE
window.add(panel);
//Display the window
window.setVisible(true);
}
public static void buildPanel(){
//create a label to display instructions
messageLabel = new JLabel("Enter a Number from 1..100,000");
//create a text field of 10 characters wide
textField = new JTextField(10);
//create panel
calcButton = new JButton("Calculate");
//Add an action listening to the button. Currently, I can't make it work
//Create the a JPanel object and let the panel field reference it
panel = new JPanel();
panel.add(messageLabel);
panel.add(textField);
panel.add(calcButton);
}
}
现在,这是其他代码:
package TheValidationFiles;
public class ValidationOfNumbers {
static int MAX_NUMBER_TO_VAL = 10000000;
public static void GetValidationOfNumbers(boolean isTrue, String s) {
String[] numberArray = new String [MAX_NUMBER_TO_VAL];
boolean numberMatching = false;
for (int i = 0; i < MAX_NUMBER_TO_VAL; i++){
numberArray[i] = Integer.toString(i);
if (numberArray[i].equals(s)){
System.out.println("The number you typed " + s + " Matches with the array value of: " + numberArray[i]);
System.exit(0);
break;
}
else{
numberMatching = true;
}
}
if(numberMatching){
ValidationOfFiles.ValidationOfFiles(s);
}
}
}
我的答案有点晚,但对于那些有兴趣知道如何链接UI和逻辑的人可以看看我的解决方案。 – user3437460 2018-02-13 11:50:23