我希望对可重复使用的swing类进行粗略的准备,以节省一些编码并回顾一下我曾经新的东西,但是我无法理解我的问题是什么不起作用;除了一些基本的基本理解当然。
现在我已经看了很多关于焦点和实现keylistener
的问题,我实际上尝试了所有其他线程在这个问题上的组合,但仍然没有可行的答案。
在Easyswing
类中,我希望利用java知道用哪个构造函数来确定我得到的组件,如果你知道它,还请建议一个更好的方法
这是我的主要代码段
public class mainbox
{
static Easyswing tix = new Easyswing(300,500);;
public static void main(String[] args) {
System.out.println(tix.getText());
}
以下是Easyswing课程:
public class Easyswing
{
String text;
int locationx, locationy;
JTextArea tarea;
JTextField tfield;
JScrollPane scrollpane;
boolean istarea;
//text on startup, size in rows, size in columns, is editable, might take advantage of different constructors to give different uses to this class outputting messages
Easyswing(String t, int x, int y,int lx, int ly){
//create and initialise text areas starting text, size in number of rows and columns
tarea = new JTextArea("",x, y);
//create slight border to avoid text right on edge
tarea.setBorder(BorderFactory.createEmptyBorder(4, 4, 4, 4));
//adds the text area to the scroll pane
scrollpane = new JScrollPane(tarea);
JFrame frame1 = new JFrame(t);
frame1.setSize(x,y);
frame1.setDefaultCloseOperation(frame1.EXIT_ON_CLOSE);
frame1.add(scrollpane);
frame1.setLocation(locationx = lx, locationy = ly);
frame1.setVisible(true);
//if it is a text area then true
istarea = true;
}
//this will create a basic text input field
Easyswing(int lx, int ly){
tfield = new JTextField();
scrollpane = new JScrollPane(tfield);
JFrame frame1 = new JFrame("Write");
frame1.setSize(250,75);
frame1.setDefaultCloseOperation(frame1.EXIT_ON_CLOSE);
frame1.add(scrollpane);
frame1.setLocation(locationx = lx, locationy = ly);
frame1.requestFocus();
//在这里,这就是我在这里做什么为什么没有这个工作? frame1.addKeyListener(new KeyListener(){
@Override
public void keyPressed(KeyEvent e) {
System.out.println("whut");
}
@Override
public void keyReleased(KeyEvent e) {
// TODO Auto-generated method stub
}
@Override
public void keyTyped(KeyEvent e) {
// TODO Auto-generated method stub
}
});
frame1.setVisible(true);
istarea = false;
}