[英]Event handler of Java JScrollPane
我已经有一个像这样的基于JList的自定义控件
public class MyClass extends JList<String> {
private DefaultListModel<String> items = new DefaultListModel<String>();
public MyClass() {
setModel(items);
}
public String getAAAA() { //code here.. }
public int getBBB() { //code here... }
}
但是我希望Jlist具有滚动条,因此我将自定义控件的超类更改为JScrollPane并将JList添加到其中。 像这样的代码
public class MyClass extends JScrollPanel {
private JList<String> list = new JList<String>();
private DefaultListModel<String> items = new DefaultListModel<String>();
public MyClass() {
list.setModel(items);
this.setViewportView(list);
}
public String getAAAA() { //code here.. }
public int getBBB() { //code here... }
}
好吧,如果MyClass扩展了JList,则可以在JFrame中将MouseListener添加到MyClass对象,并在mouseClicked中比较MouseEvent getSource是MyClass的实例,并调用MyClass的这些方法。
@Override
public void mouseClicked(MouseEvent arg0)
{
Object source = arg0.getSource();
if (source instanceof MyClass)
{
String a = ((MyClass) source).getAAAA();
int b = ((MyClass) source).getBBB();
}
}
但是,如果MyClass扩展了JScrollPane,则将MouseListener添加到MyClass对象中,就像上面一样,在mouseClicked中,我比较MyClass的MouseEvent getSource实例并调用这些方法(getAAA(),getBBB()...),但是它不起作用?
您可能不想扩展JScrollPane。 您可以将任何Component添加到JScrollPane以实现具有滚动条。 JList是一个组件,因此您可以直接添加它。 您不需要做太多事情。
参见: http : //docs.oracle.com/javase/tutorial/uiswing/components/scrollpane.html
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.