Tworzenie włsnego typu.

0

W Delphi tworzę swój typ:

type
  TChannelData = class(TObject)
    AGfx : TPNGImage;
    GfxIsDownloading : boolean;
    AIdent, AName, AUrl, AGfxUrl : string;
  end;

Jak to zrobić w javie? Za pomocą klasy?
Ale jak potem dynamicznie utworzyć obiekt klasy i potem odwołać się do niego.

1
// definicja klasy
class MójTyp {
  int pole;

  // konstruktor
  public MójType(int pole) {
    this.pole = pole;
  }
}
// tworzenie instancji klasy
MójTyp mójTyp = new MójTyp(5);
// odwołanie do pola w instancji klasy
System.out.println(mójTyp.pole);

Polecam https://docs.oracle.com/javase/tutorial/

0

Dzięki. Ale nie rozumiemy się. Chcę stworzyć dynamicznie x takich obiektów. W delphi robię to tak:

      for I := 0 to JSONBase.Count - 1 do
               ChnDat := TChannelData.Create;
              with ChnDat do
              begin
                AGfx := nil;
                AUrl := '';
                AName := '';
                AGfxUrl := '';

                      Result.AddObject(AName, ChnDat);
                    end;
                  end;
                end;
              end;

Czy można zrobić coś takiego w javie?

1

W Javie nie ma konstrukcji with, więc byłoby to mniej więcej tak:

for (int i = 0; i < JSONBase.Count - 1; i++) {
  TChannelData ChnDat = new TChannelData();
  ChnDat.AGfx = null;
  ChnDat.AUrl = "";
  ChnDat.AName = "";
  ChnDat.AGfxUrl = "";
  Result.AddObject(ChnDat.AName, ChnDat);
}
0

Super. o to chodzi. Powiedz tylko jeszcze jak dodać obiekt do List i wywołac dany obiekt po doubleclick.

1

Dodanie obiektu do List:

String obiekt = "ala ma kota";
List<String> obiekty = new ArrayList<>();
obiekty.add(obiekt);

Wywołanie metody na instancji obiektu po podwójnym kliknięciu zależy od tego na czym klikasz i gdzie znajduje się referencja do obiektu. W Swingu trzeba podpiąć listenera java.awt.event.MouseListener, w którym w metodzie mouseClicked trzeba wywołać getClickCount() na MouseEvent'u podanym jako parametr.

https://docs.oracle.com/javase/tutorial/uiswing/events/mouselistener.html

    public void mouseClicked(MouseEvent e) {
       saySomething("Mouse clicked (# of clicks: "
                    + e.getClickCount() + ")", e);
    }
0

Chodzi mi o List z swing. Coś jak ListBox. Tzn. Chcę dodać obiekt do List. Potem wywołać określony obiekt klknięciem.

0

Czy można "dobrać się " do takiego obiektu po numerze?

2

Tak: https://docs.oracle.com/javase/7/docs/api/javax/swing/DefaultListModel.html
Wszystko jest w tutorialach, które podałem.

0

Dzięki. Muszę to przetrawić. Uczę się dopiero 3 tygodnie . Ale fajnie, że pomogłeś.

0

Przepraszam, ale jednak potzrebuję konkretnej odpowiedzi. Utworzyłem za radą jlist z obiektami klasy MójTyp. Wszystko ładnie wyświetla. Teraz chcę w drugą stronę. Po kliknięciu myszą na item ma się wyświetlić zawartość klasy MójTyp. Doszedłem tylko do

int index = list.locationToIndex(evt.getPoint());

To dość trudne dla początkujących. W delphi mam tak:

D := TChannelData(ChannelsLB.Items.Objects[Idx]);

1 użytkowników online, w tym zalogowanych: 0, gości: 1