Java 如何从另一个类调用run方法?

Java 如何从另一个类调用run方法?,java,methods,call,Java,Methods,Call,对不起,如果这是个愚蠢的问题 java.awt.EventQueue.invokeLater(new Runnable() { public void run() { new FereastraPrincipala().setVisible(true); 我想了解如何调用位于中的run方法 java.awt.EventQueue.invokeLater(new Runnable() { public void run() {

对不起,如果这是个愚蠢的问题

java.awt.EventQueue.invokeLater(new Runnable() {
        public void run() {
            new FereastraPrincipala().setVisible(true);
我想了解如何调用位于中的run方法

java.awt.EventQueue.invokeLater(new Runnable() {
        public void run() {
            new FereastraPrincipala().setVisible(true);
来自类AdaugaComanda.java

java.awt.EventQueue.invokeLater(new Runnable() {
        public void run() {
            new FereastraPrincipala().setVisible(true);
run方法是在fereastratrincipala.java中声明的,我想从AdaugaComanda.java调用它,以便在adaugachita.java的文本字段中引入值后可以看到fereastratrincipala的更改。如果我没有调用方法,那么我必须再次运行FereastraPrincipala.java,以便在JTabbedPane中查看新信息

java.awt.EventQueue.invokeLater(new Runnable() {
        public void run() {
            new FereastraPrincipala().setVisible(true);
下面是Ferestara.java的代码

java.awt.EventQueue.invokeLater(new Runnable() {
        public void run() {
            new FereastraPrincipala().setVisible(true);
 package sakila.ui;

 import java.util.List;
 import java.util.Vector;
 import javax.swing.table.DefaultTableModel;
 import org.hibernate.Session;
 import sakila.entity.*;
 import sakila.util.HibernateUtil;

public class FereastraPrincipala extends javax.swing.JFrame {

public FereastraPrincipala() {
    initComponents();
}

private void jMenuItem1ActionPerformed(java.awt.event.ActionEvent evt) {                                           
    AdaugaComanda ac = new AdaugaComanda();
    ac.setVisible(true);
}                                          

public static void main(String args[]) {

    java.awt.EventQueue.invokeLater(new Runnable() {

        public void run() {
            new FereastraPrincipala().setVisible(true);
            Session session = HibernateUtil.getSessionFactory().openSession();

    try{

    List<Comanda> comenzi = session.createQuery("from Comanda").list();

    Vector<String> tableHeaders = new Vector<String>();
    Vector tableData = new Vector();
    tableHeaders.add("IdComanda");
    tableHeaders.add("Depozit");
    tableHeaders.add("Furnizor");
    tableHeaders.add("Client");
    tableHeaders.add("Produs");
    tableHeaders.add("Cantitate");
    tableHeaders.add("Unit de mas");

    for (Comanda comanda : comenzi) {
        Vector <Object> oneRow = new Vector <Object>();
        oneRow.add(comanda.getIdcomanda());
        oneRow.add(comanda.getDepozit() == null ? "" : comanda.getDepozit().toString());
        oneRow.add(comanda.getFurnizor() == null ? "" : comanda.getFurnizor().toString());
        oneRow.add(comanda.getClient() == null ? "" : comanda.getClient().toString());
        oneRow.add(comanda.getProdus() == null ? "" : comanda.getProdus().toString());
        oneRow.add(comanda.getCantitate());
        oneRow.add(comanda.getUnitmas());

        tableData.add(oneRow);

        }
   ComandaTable.setModel(new DefaultTableModel(tableData, tableHeaders));    

       }catch (Exception he){
        he.printStackTrace();
    }
 }                              
    });
}

也许有人能帮我。多谢各位

您可以将Fereastra Principala作为AnduagaChitanta的成员变量

java.awt.EventQueue.invokeLater(new Runnable() {
        public void run() {
            new FereastraPrincipala().setVisible(true);
public class  AnduagaChitanta
{
  FereastraPrincipala fPrincipala  = new FereastraPrincipala (); //Or inject it into the constructor

  private void SomeMethod()
  {
   fPrincipala.run();
  }
}
在run方法()中

java.awt.EventQueue.invokeLater(new Runnable() {
        public void run() {
            new FereastraPrincipala().setVisible(true);
如果您想知道如何注入它:

java.awt.EventQueue.invokeLater(new Runnable() {
        public void run() {
            new FereastraPrincipala().setVisible(true);
安杜加奇坦塔公务舱 { 菲雷阿斯特拉原则酒店

java.awt.EventQueue.invokeLater(new Runnable() {
        public void run() {
            new FereastraPrincipala().setVisible(true);
  public AnduagaChitanta(FereastraPrincipala fPrinicipala)
  {
      this.fPrinicipala = fPrinicipala;
  }
  private void SomeMethod()
  {
   fPrincipala.run();
  }
}
如果您愿意,您可以让我们实现一个接口,这样构造函数的定义可以是:

java.awt.EventQueue.invokeLater(new Runnable() {
        public void run() {
            new FereastraPrincipala().setVisible(true);
安杜加奇坦塔公共区(等距Prinicipala fPrinicipala)

java.awt.EventQueue.invokeLater(new Runnable() {
        public void run() {
            new FereastraPrincipala().setVisible(true);
但现在我们要进入设计模式,所以我就到此为止

java.awt.EventQueue.invokeLater(new Runnable() {
        public void run() {
            new FereastraPrincipala().setVisible(true);
更新 在您更新后,我将执行以下操作:

java.awt.EventQueue.invokeLater(new Runnable() {
        public void run() {
            new FereastraPrincipala().setVisible(true);
FereastraPrincipala extends JFrame implements Runnable 
{
   public void run()
   {
        setvisible(true) ;
   } 

}
我不知道在哪里,但也许在你的安杜加奇坦塔课上我会这么做

java.awt.EventQueue.invokeLater(new Runnable() {
        public void run() {
            new FereastraPrincipala().setVisible(true);
public void SomeMethod()
{
  java.awt.EventQueue.invokeLater(fPrinicpala) 
}

我希望这是有意义的

您可以将Ferestraprincipala作为AnduagaChitanta的成员变量

java.awt.EventQueue.invokeLater(new Runnable() {
        public void run() {
            new FereastraPrincipala().setVisible(true);
public class  AnduagaChitanta
{
  FereastraPrincipala fPrincipala  = new FereastraPrincipala (); //Or inject it into the constructor

  private void SomeMethod()
  {
   fPrincipala.run();
  }
}
在run方法()中

java.awt.EventQueue.invokeLater(new Runnable() {
        public void run() {
            new FereastraPrincipala().setVisible(true);
如果您想知道如何注入它:

java.awt.EventQueue.invokeLater(new Runnable() {
        public void run() {
            new FereastraPrincipala().setVisible(true);
安杜加奇坦塔公务舱 { 菲雷阿斯特拉原则酒店

java.awt.EventQueue.invokeLater(new Runnable() {
        public void run() {
            new FereastraPrincipala().setVisible(true);
  public AnduagaChitanta(FereastraPrincipala fPrinicipala)
  {
      this.fPrinicipala = fPrinicipala;
  }
  private void SomeMethod()
  {
   fPrincipala.run();
  }
}
如果您愿意,您可以让我们实现一个接口,这样构造函数的定义可以是:

java.awt.EventQueue.invokeLater(new Runnable() {
        public void run() {
            new FereastraPrincipala().setVisible(true);
安杜加奇坦塔公共区(等距Prinicipala fPrinicipala)

java.awt.EventQueue.invokeLater(new Runnable() {
        public void run() {
            new FereastraPrincipala().setVisible(true);
但现在我们要进入设计模式,所以我就到此为止

java.awt.EventQueue.invokeLater(new Runnable() {
        public void run() {
            new FereastraPrincipala().setVisible(true);
更新 在您更新后,我将执行以下操作:

java.awt.EventQueue.invokeLater(new Runnable() {
        public void run() {
            new FereastraPrincipala().setVisible(true);
FereastraPrincipala extends JFrame implements Runnable 
{
   public void run()
   {
        setvisible(true) ;
   } 

}
我不知道在哪里,但也许在你的安杜加奇坦塔课上我会这么做

java.awt.EventQueue.invokeLater(new Runnable() {
        public void run() {
            new FereastraPrincipala().setVisible(true);
public void SomeMethod()
{
  java.awt.EventQueue.invokeLater(fPrinicpala) 
}

我希望这是有意义的

永远不要调用线程的
run()
方法。它在当前线程中自己执行!!始终调用
start()
方法。根据您的情况,创建一个新类,以便您可以从其他地方调用
start()
永远不要调用
run()
thread的方法。它在自己的当前线程中执行!!始终调用
start()
method。根据您的情况,创建一个新类,以便可以调用
start())
从其他地方查看它

看到您更改了问题,FereastarPrincipala是JFrame吗?FereastarPrincipala是JFrame,它意味着主窗口,Adaugachita是JDialog,我在其中插入值,这些值保存在数据库中。我可以从FereastarPrincipala.java打开Adaugachita,以便对数据进行更改基本。但我无法看到FereastraPrincipala的JTabbedPane中的更改,除非我再次运行FereastraPrincipala.java,这就是为什么我希望在关闭JDialog Adaugachita后直接看到更改。我希望我的解释不含糊。为了看到它们,我必须从Adaugachita调用一个方法(必须调用的内容位于run()方法中),该方法位于Ala中,以便在adaugachita.java中插入值后可以看到更改。您看到我的更新了吗?这应该在前面说明:)我建议您看看数据传输对象,因为您已经更改了您的问题,FereastratraPrincipala是JFrame吗?FereastratraPrincipala是JFrame,它意味着主窗口和Adaugachita是一个JDialog,我在其中插入值,这些值保存在数据库中。我可以从FereastratraPrincipala.java打开Adaugachitata,以便对数据库。但是我看不到FereastraPrincipala的JTabbedPane中的更改,除非我再次运行FereastraPrincipala.java,这就是为什么我想在关闭JDialog Adaugachita后直接看到更改。我希望我的解释不是含糊不清的。为了看到它们,我必须从Adaugachita调用一个方法(必须调用的内容位于run()方法中),该方法位于Ala中,以便在adaugachita.java中插入值后可以看到更改。您看到我的更新了吗?这应该在前面说明:)我建议你看看Data Transfer Objects自从我使用Java已经有一段时间了。但它应该或多或少是对的。非常感谢你花了这么多时间。我非常感谢,虽然我不知道你的解释是否与我的代码相符。我是Java初学者,可能这不是一个很好的问题。我重新编辑了我的问题,并给出了所有细节。如果你可以猜出来,我会很感激的。我已经有一段时间没有使用Java了。但它应该或多或少是正确的。非常感谢你的时间。我非常感谢,尽管我不知道你的解释是否与我的代码相符。我是Java初学者,也许这不是一个很好的问题。我重新编辑了我的问题,并给出了所有细节。如果你如果你能弄明白,我会很感激的。
java.awt.EventQueue.invokeLater(new Runnable() {
        public void run() {
            new FereastraPrincipala().setVisible(true);