嗨我有一个班级,我正在使用mouseclick事件我想从我的鼠标点击时调用另一个班级
MouseListener mouseListener = new MouseAdapter() {
public void mouseClicked(MouseEvent mouseEvent) {
JList theList = (JList) mouseEvent.getSource();
if (mouseEvent.getClickCount() == 2) {
int index = theList.locationToIndex(mouseEvent.getPoint());
if (index >= 0) {
Object o = theList.getModel().getElementAt(index);
// System.out.println("Double-clicked on: " + o.toString());
String a=o.toString();
LiistSelection.setListIndex(a);
System.out.println(LiistSelection.getListIndex());
new MyGui4();
}
}
}
};
我想在用户点击列表时调用此类,然后打开新窗口
这是我的班级mygui4.java
public class MyGui4 extends JFrame
{
JLabel jLabel1;
Container pane;
private static ResultSet resultSet = null;
public void Gui( )
{
{
getContentPane().setBackground(new java.awt.Color(255,153,51));
}
this.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
Container c = getContentPane();
setUndecorated(true);
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
setBounds(0,0,screenSize.width, screenSize.height);
ImageIcon image = new ImageIcon("E:\\SOFTWARE\\TrainPIS\\res\\drawable\\a0.png");
Border border = LineBorder.createGrayLineBorder();
jLabel1 = new JLabel(image);
jLabel1.setBorder(border);
jLabel1.setBackground(Color.red);
c.add(jLabel1);
setLayout(null);
}
public static void main( String[] args )
{
final MyGui4 frame = new MyGui4();
frame.Gui();
frame.setVisible(true);
}
}
答案 0 :(得分:0)
您想要创建另一个Class的对象并使用对象调用函数。
class second
{
//.....
public void function()
{
//........
}
public void function(int index)
{
//..........
}
}
second s=new second();
s.function()//calling function
int i=10;
s.function(i)//calling function with parameter
试试这个例子:
import javax.swing.*;
import java.awt.event.*;
import java.awt.*;
class m extends JFrame
{
String s="The Value of List is 10";
m()
{
setVisible(true);
pack();
setLayout(null);
JButton b=new JButton("Click to Open another form");
b.setBounds(10,10,200,40);
add(b);
b.addMouseListener(new MouseAdapter()
{
public void mouseClicked(MouseEvent e)
{
new s(s);//calling another class contructor
}
});
}
public static void main (String[] args)
{
new m();
}
}
class s extends JFrame
{
s(String s)
{
setVisible(true);
setSize(100,100);
setTitle(s);
}
}
单击按钮另一个类并打开窗口
答案 1 :(得分:0)
在我看来,当您启动JVM时从命令行调用类MyGui4或在单击JList时从其他应用程序调用MyGui4,如果是这样,那么两个地方的代码需要相同。
从命令行调用时,调用main()方法,然后调用3行代码:
final MyGui4 frame = new MyGui4();
frame.Gui();
frame.setVisible(true);
当您单击JList时调用代码时,您将调用1行代码:
new MyGui4();
你能告诉我有什么区别吗?
当然,我仍然不明白这段代码的重点,因为MyGui4类中没有一个方法接受参数。因此,单击JList中的哪个项目并不重要,您仍将显示具有相同信息的相同GUI。您需要将所选对象从JList传递到GUI。