Ako zvládnuť udalosti výberu tabuľky na výbere buniek na výkyvnej obrazovke?

Jul 04, 2025

Zanechajte správu

Sophia Taylor
Sophia Taylor
Sophia je zamestnankyňou logistiky spoločnosti Xinxiang Lanhai Environmental Technology Co., Ltd. Má na starosti hladkú prepravu a skladovanie výrobkov, čím sa zabezpečuje, aby sa výrobky spoločnosti na ochranu životného prostredia dodávali včas.

Hej! Ako dodávateľ swingových obrazoviek som mal spravodlivý podiel na skúsenostiach zaoberajúcich sa najrôznejšími technickými aspektmi súvisiacimi s týmito šikovnými zariadeniami. Jednou z otázok, ktorá sa objavuje pomerne často, je to, ako zvládnuť udalosti výberu tabuľkových buniek na výkyvnej obrazovke. V tomto blogu vás krok za krokom prejdem a podelím sa o niekoľko tipov a trikov, ktoré som zdvihol.

Po prvé, povedzme si o tom, prečo je dôležité zaobchádzanie s udalosťami výberu tabuľkových buniek. Keď pracujete s výkyvnou obrazovkou, môžete mať tabuľku, ktorá zobrazuje veľa údajov. A niekedy chcete niečo urobiť, keď používateľ v tejto tabuľke vyberie konkrétnu bunku. Možno by ste chceli zobraziť podrobnejšie informácie o údajoch v tejto bunke, alebo chcete vykonať nejakú akciu na základe výberu. Bez ohľadu na dôvod, schopnosť efektívne zvládnuť tieto udalosti môže výrazne vylepšiť používateľskú skúsenosť s vašou aplikáciou.

Ako sa teda zaoberáme udalosťami výberu tabuľkových buniek? Prvá vec, ktorú musíte urobiť, je porozumieť základnej štruktúre tabuľky v aplikácii Swing. V Java Swing sú tabuľky reprezentovanéPrevodtrieda. Táto trieda poskytuje veľa funkcií na vytváranie a správu tabuliek vrátane udalostí zaobchádzania s výberom.

Ak chcete manipulovať s udalosťami výberu buniek tabuľky, musíte pridať aZoznamNa výber výberu tabuľky. Výberový model je zodpovedný za sledovanie toho, ktoré bunky sú v súčasnosti vybrané v tabuľke. Tu je jednoduchý príklad toho, ako to môžete urobiť:

import javax.swing.*; import javax.swing.event.listSelectionEvent; import javax.swing.event.listSelectionListener; public class TabulSelectionExample {public static void main (String [] args) {// Vytvorte nový reťazec JTable [] columnnames = {"name", "Age", "City"}; Object [] [] data = {{"John", 25, "New York"}, {"Jane", 30, "Los Angeles"}, {"bob", 35, "Chicago"}}; JTABLE TABLE = new JTABLE (DATA, COLUMNNAMES); // Získajte výberový zoznam výberových modelov výberu výberu výberu // Pridajte do výberu výberu výberu výberu výberu Model ModelModel.addListSelectionListener (new ListSelectionListener () {@Override public void valueChanged (ListSelectionEvent e) {if (! E.getValueisAdjusting () {int selectedRow = Table.getSelectedRow (); int selectedColumn = Table.getColycoly); && vybrané // Vytvorte JFrame a pridajte do nej tabuľku jFrame frame = new JFrame ("Príklad výberu tabuľky"); frame.add (nový jscrollpane (tabuľka)); frame.setDefaultCloseOperation (jframe.exit_on_close); frame.pack (); frame.SetVisible (true); }}

V tomto príklade najprv vytvoríme novýPrevods niektorými ukážkovými údajmi. Potom dostaneme výber výberu tabuľky a pridáme aZoznamna to. TenZanedbanýspôsobZoznamsa volá vždy, keď sa výber v tabuľke zmení. Vo vnútri tejto metódy skontrolujeme, či sa výber stále upravuje (aby sa zabránilo viacerým hovorom, keď užívateľ ťahá myš, aby vybral viac buniek). Ak sa výber neupravuje, dostaneme vybrané indexy riadkov a stĺpcov a potom načítať hodnotu vybranej bunky pomocougetValueatspôsobPrevodtrieda.

Povedzme, že chcete urobiť niečo zložitejšie, keď je bunka vybraná. Napríklad by ste mohli chcieť zobraziť dialógové okno s podrobnejšími informáciami o údajoch vo vybranej bunke. Takto môžete upraviť predchádzajúci príklad, aby ste to dosiahli:

import javax.swing.*; import javax.swing.event.listSelectionEvent; import javax.swing.event.listSelectionListener; public class TabulSelectionExample {public static void main (String [] args) {// Vytvorte nový reťazec JTable [] columnnames = {"name", "Age", "City"}; Object [] [] data = {{"John", 25, "New York"}, {"Jane", 30, "Los Angeles"}, {"bob", 35, "Chicago"}}; JTABLE TABLE = new JTABLE (DATA, COLUMNNAMES); // Získajte výberový zoznam výberových modelov výberu výberu výberu // Pridajte do výberu výberu výberu výberu výberu Model ModelModel.addListSelectionListener (new ListSelectionListener () {@Override public void valueChanged (ListSelectionEvent e) {if (! E.getValueisAdjusting () {int selectedRow = Table.getSelectedRow (); int selectedColumn = Table.getColycoly); && vybrané // Vytvorte JFrame a pridajte do nej tabuľku jFrame frame = new JFrame ("Príklad výberu tabuľky"); frame.add (nový jscrollpane (tabuľka)); frame.setDefaultCloseOperation (jframe.exit_on_close); frame.pack (); frame.SetVisible (true); }}

V tomto upravenom príklade používameJoptionpaneTrieda na zobrazenie dialógového okna s vybratou hodnotou, keď je zvolená bunka.

Ďalšou vecou, ​​ktorú by ste mohli chcieť urobiť, je zvládnuť viac výberov buniek. V predvolenom nastaveníPrevodumožňuje užívateľovi vybrať viac buniek podržanímCtrlkľúč (v systéme Windows) aleboPríkazKľúč (na Mac) pri kliknutí na bunky. Ak chcete spracovať viac výberov buniek, môžete sa vysielať cez vybrané riadky a stĺpce a vykonať požadovanú akciu pre každú vybranú bunku. Tu je príklad:

import javax.swing.*; import javax.swing.event.listSelectionEvent; import javax.swing.event.listSelectionListener; public class TabulSelectionExample {public static void main (String [] args) {// Vytvorte nový reťazec JTable [] columnnames = {"name", "Age", "City"}; Object [] [] data = {{"John", 25, "New York"}, {"Jane", 30, "Los Angeles"}, {"bob", 35, "Chicago"}}; JTABLE TABLE = new JTABLE (DATA, COLUMNNAMES); // Získajte výberový zoznam výberových modelov výberu výberu výberu // Pridajte do výberu výberu výberu výberu Model Model Model.addListSelectionListener (new ListSelectionListener () {@Override public void valueChanged (ListSelectionEvent e) {if (! E.getValueisAdjusting () {int [] pre (int) pre (int) pre (int)? : VybranéRows) {pre (int col: SelectedColumns) {Object VybranéValue = table.getValueat (riadok, col); // Vytvorte JFrame a pridajte do nej tabuľku jFrame frame = new JFrame ("Príklad výberu tabuľky"); frame.add (nový jscrollpane (tabuľka)); frame.setDefaultCloseOperation (jframe.exit_on_close); frame.pack (); frame.SetVisible (true); }}

V tomto príklade používamegetSelectedRowsagetSelectedColumnsmetódyPrevodTrieda na získanie polí vybratých indexov riadkov a stĺpcov. Potom sa cez tieto polia vyskytujeme a získavame hodnotu každej vybranej bunky.

Paper Tearing MachineHorizontal Reactor

Ako dodávateľ Swing Screen som zistil, že tieto techniky zaobchádzania s udalosťami výberu tabuľky môžu byť veľmi užitočné v rôznych aplikáciách. Či už vytvárate systém správy údajov, nástroj na podávanie správ alebo akúkoľvek inú aplikáciu, ktorá používa tabuľky, schopnosť efektívne zvládnuť udalosti výberu, môže urobiť vašu aplikáciu užívateľsky prívetivejšiu a výkonnejšiu a výkonnejšiu.

Ak ste na trhu s papierovými buničinami, ponúkame tiež niekoľko skvelých produktov akoDvojitá pulp s dvoma rotačnými bubon,Stroj na trhnutieaHorizontálny reaktor. Tieto výrobky sú navrhnuté tak, aby vyhovovali potrebám odvetvia papierovej buničiny a môžu vám pomôcť zlepšiť efektívnosť vašej výroby.

Ak máte záujem dozvedieť sa viac o našich výkyvných obrazovkách alebo o niektorom z našich ďalších produktov, neváhajte a oslovte nás o vyjednávanie o nákupe. Vždy sme radi, že vám pomôžeme a tešíme sa na spoluprácu s vami!

Referencie:

  • „Výukový program Java Swing“ - Dokumentácia Oracle
  • „Efektívna java“ - Joshua Bloch
Zaslať požiadavku
Kontaktujte násAk máte nejaké otázky

Môžete nás buď kontaktovať prostredníctvom telefónu, e -mailu alebo online formulára nižšie . Náš špecialista vás čoskoro bude kontaktovať .

Kontaktujte teraz!