Ukol v Javě – Java – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Ukol v Javě – Java – Fórum – Programujte.comUkol v Javě – Java – Fórum – Programujte.com

 

Frantisek
~ Anonymní uživatel
33 příspěvků
8. 11. 2011   #1
-
0
-

Zdravím, nechci po vás hned zdrojáky atd., ale spíš radu jak na to, jaké komponenty nastudovat, co tam použiji atd...

Zadání:

úkolem bude vytvořit jednouchý průzkumník souborů. Ten se bude skládat ze dvou oken. Vlevo bude strom adresářů vpravo tabulka obsahující seznam souborů ve vybraném adresáři. Dále bude GUI obsahovat filtrovací pole, pokud do něj uživatel zadá regulární výraz, zobrazí e jen ty soubory, jejichž jméno odpovídá výrazu.

Díky

Nahlásit jako SPAM
IP: 195.113.239.–
crazy
~ Moderátor
+10
Grafoman
8. 11. 2011   #2
-
0
-

#1 Frantisek
Třídy v Javě pro práci s FS, nějakou knihovnu/framework pro GUI, a regexpy

Nahlásit jako SPAM
IP: 147.32.113.–
All you need is vision and time.
zlz
~ Anonymní uživatel
634 příspěvků
8. 11. 2011   #3
-
0
-

Třeba JTree a JList do GUI, File pro načtení seznamu složek a souborů, String (matches) na test regulárního výrazu.

Nahlásit jako SPAM
IP: 213.211.51.–
Frantisek
~ Anonymní uživatel
33 příspěvků
8. 11. 2011   #4
-
0
-

Není někde český tutoriál na strom - souborů a složek? Z těch EN to moc nepobírám, normální strom bych udělal, ale dostat do něj složky a soubory doprava do Jlistu, to je nad moje síly...

Nahlásit jako SPAM
IP: 88.101.113.–
liborb
~ Redaktor
+18
Guru
9. 11. 2011   #5
-
0
-

Procházej složky (třeba rekurzivně) a sestav ten strom adresářů. Až to budeš mít, tak zachyť událost změny výběru položky v tomto stromu. Reakcí na to může být, že se z toho stromu zreprodukuje úplná cesta, protože tam všechny informace máš. Stačí vzít aktuálně vybranou položku (a její text) a její rodičovskou položku a její rodičovskou .... a poskládat jejich texty v opačném pořadí a prokládat lomítky. Výsledkem je úplná cesta do aktuálně vybraného adresáře, kterou použiješ jako základ pro výpis souborů do JList, který vždycky před novým naplněním smažeš.

Zasláno z mobilního telefonu.

Nahlásit jako SPAM
IP: 82.145.211.–
Frantisek
~ Anonymní uživatel
33 příspěvků
20. 11. 2011   #6
-
0
-

Tak jsem tu zase, na úkol nebyl čas... Trochu jsem postoupil, již se mi povedlo naplnit si stromeček, ale teď zase nevím, jak dostat data ze stromu - cestu do adresáře, který mám vybraný - a vypsat ho doprava do JTextArea ? Ten regulární výraz se mi povedlo bokem zprovoznit pomocí FilenameFilter - proto je pro mne důležitá ta cesta - nebo je lepší řešení?

Nahlásit jako SPAM
IP: 82.144.159.–
zlz
~ Anonymní uživatel
634 příspěvků
20. 11. 2011   #7
-
0
-

Vždyť ti to liborb napsal. Každý uzel má svůj text a odkaz na nadřazený uzel (getParent). Tak posbíráš texty od vybraného po kořenový uzel stromu a máš celou cestu. Případně pokud pro uzly používáš DefaultMutableTreeNode, tak nemusíš sám procházet parenty, ale můžeš použít getPath.

... {
	...
	tree.getSelectionModel().setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION);
	tree.addTreeSelectionListener(this);
	...
}
...
public void valueChanged(TreeSelectionEvent e) {
	//JTree tree = (JTree)e.getSource();
	DefaultMutableTreeNode node = (DefaultMutableTreeNode)tree.getLastSelectedPathComponent();
	if (node == null)
		return;

	String path = "";
	TreeNode nodes[] = node.getPath();
	for (TreeNode n: nodes) {
		path += n + File.separator;
	}

	JOptionPane.showMessageDialog(null, path);
}
Nahlásit jako SPAM
IP: 213.211.51.–
Frantisek
~ Anonymní uživatel
33 příspěvků
20. 11. 2011   #8
-
0
-

Tak jsem se do toho nějak dostal, ale ještě se zeptám, kam dodat tento kód:

private JTree getTree() {
  if (tree == null) {
   tree = new JTree();
   DefaultTreeModel treeModel = new DefaultTreeModel(new FileTreeNode(new File("E:/")));
   tree.setModel(treeModel);
  }
  return tree;
  }

Dělal jsem to v NetBeans 7 a nevím jak to tam kam dostat, normálně pod Eclipse mi to šlape ve třídě Průzkumník, tak nevím.... Díky

http://www.sourcepod.com/qajuze30-5984

Nahlásit jako SPAM
IP: 82.144.159.–
zlz
~ Anonymní uživatel
634 příspěvků
20. 11. 2011   #9
-
0
-

Tree vytváříš v initComponents. Tam taky můžeš nastavit ten model. Tu funkci jako takovou nepotřebuješ.

Nahlásit jako SPAM
IP: 213.211.51.–
Frantisek
~ Anonymní uživatel
33 příspěvků
20. 11. 2011   #10
-
0
-

PARADA!

Teď už řeším jen poslední problém, vytahl jsem si tedy cestu takže - když mám cestu třeba C:/user/ jak mám změnit tento kód: http://www.java2s.com/Code/Java/Swing-JFC/FileTableDemo.htm aby to tam šlo dát? Regularni vyraz v tabulce už mi šlape :)

Nahlásit jako SPAM
IP: 82.144.159.–
zlz
~ Anonymní uživatel
634 příspěvků
20. 11. 2011   #11
-
0
-

Ten FileTableModel má jako parametr konstruktoru File, takže z cesty můžeš udělat File.

A protože tree zřejmě plníš nějakým FileTreeNode, ve kterém už File máš, tak můžeš použít přímo ten. Takže snad nějak takhle 

FileTreeNode node = (FileTreeNode)tree.getLastSelectedPathComponent();
if (node == null)
	return;
table.setModel(new FileTableModel(node.getFile()));
Nahlásit jako SPAM
IP: 213.211.51.–
Frantisek
~ Anonymní uživatel
33 příspěvků
20. 11. 2011   #12
-
0
-

Tak teď jsi mě dostal, to už vůbec nevím kam vložit... :-D končím, úkol prostě neodevzdám, Javu nepobírám.... 

Nahlásit jako SPAM
IP: 82.144.159.–
zlz
~ Anonymní uživatel
634 příspěvků
21. 11. 2011   #13
-
0
-

Takže ty vytáhneš cestu a chceš naplnit tabulku. Já ti napíšu kód, který zjistí vybraný uzel, vytáhne z něj File, podle něj vytvoří model a ten dá té tabulce. Kampak to asi patří? No nic, tak já taky končím.

Nahlásit jako SPAM
IP: 213.211.51.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 50 hostů

Podobná vlákna

O Jave — založil echo112

Terraria v Javě — založil Whatever

Bug v Javě =D — založil ingiraxo

Morseovka v Javě — založil blondyna

Programovanie v jave — založil is640kp

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý