|
|
|
![]() |
|
Strumenti |
![]() |
#41 |
Bannato
Iscritto dal: Nov 2001
Città: Verona
Messaggi: 1086
|
Che errore di dà? Il codice mi sembra ok (se escludiamo il fatto che non riesco a capire cosa debba fare
![]() C'è qualcosa da sistemare, il DataInputStream è un relitto, puoi eliminare ogni sua istanza e riferimento. Nella linea if (smtpSocket != null && os != null && is != null) { quell'"is != null" credo debba diventare un "iStream!=null" Sul mio sistema viene eseguito "correttamente" (non restituisce eccezioni se avviato) |
![]() |
![]() |
![]() |
#42 |
Senior Member
Iscritto dal: Jun 2002
Città: Milano
Messaggi: 959
|
ho corretto tutti gli is ma continua a darmi questo errore
C:\Program Files\j2sdk_nb\j2sdk1.4.2\bin>java irc Exception in thread "main" java.lang.NullPointerException at irc.main(irc.java:77) ma a te si connette al server? |
![]() |
![]() |
![]() |
#43 |
Senior Member
Iscritto dal: Jun 2002
Città: Milano
Messaggi: 959
|
mmm ora non mi da nessun errore però non mi si connette a nessun server irc...ho provato a connettermi a un ftp e si connette...com'è possibile??
|
![]() |
![]() |
![]() |
#44 |
Senior Member
Iscritto dal: Jun 2002
Città: Milano
Messaggi: 959
|
ok ora funziona...
|
![]() |
![]() |
![]() |
#45 |
Bannato
Iscritto dal: Nov 2001
Città: Verona
Messaggi: 1086
|
Di server IRC so meno di niente. Se lancio l'applicazione mi dà questo output:
pong=lla-r.se :mozilla-r.se.eu.dal.net NOTICE AUTH :*** Looking up your hostname... Server: :mozilla-r.se.eu.dal.net NOTICE AUTH :*** Checking Ident |
![]() |
![]() |
![]() |
#46 |
Senior Member
Iscritto dal: Jun 2002
Città: Milano
Messaggi: 959
|
ok ora però mi manca la parte fondamentale....
come faccio a sapere se in una stringa è contenuta una determinata parola??? P.S lo so che rompo ma voglio imparare!! ![]() |
![]() |
![]() |
![]() |
#47 | |
Bannato
Iscritto dal: Nov 2001
Città: Verona
Messaggi: 1086
|
puoi usare semplicemente il metodo String.indexOf(String), che restituisce -1 nel caso in cui la stringa in argomento non sia presente:
es: Codice:
boolean trovaValore(String parola, String messaggio) { if(messaggio.indexOf(parola)<0) { return false; } return true; } Quote:
![]() ![]() Ultima modifica di PGI : 27-08-2003 alle 01:33. |
|
![]() |
![]() |
![]() |
#48 |
Senior Member
Iscritto dal: Jun 2002
Città: Milano
Messaggi: 959
|
il metodo non sono riuscito a richiamarlo nel main perchè mi dava questo errore non-static method trovaValore(java.lang.String,java.lang.String) cannot be referenced from a static context
trovaValore(parola,ircString); ^ allora ho messo nel main questo if e funziona... if(ircString.indexOf(parola)<0) System.out.println("la parola non c'e'"); else System.out.println("la parola c'e'"); cosa significa l'errore che mi ha dato con il metodo? |
![]() |
![]() |
![]() |
#49 |
Senior Member
Iscritto dal: Jun 2002
Città: Milano
Messaggi: 959
|
ho bisogno di creare un JPanel e ho creato questo metodo
public void setContentPane1(){ JPanel P=new JPanel(new BorderLayout()); JPanel Pannello=new JPanel(new GridLayout(2,1)); Pannello.add(testoOut); setContentPane(Pannello); } ma mi da questo errore cannot resolve symbol symbol : method setContentPane (javax.swing.JPanel) location: class irc setContentPane(Pannello); perchè?dovrebbe essere giusto.. |
![]() |
![]() |
![]() |
#50 | |
Bannato
Iscritto dal: Nov 2001
Città: Verona
Messaggi: 1086
|
irc non è un JFrame (la clausola extends JFrame è stata rimossa).
Il compilatore pertanto non riconosce il metodo "setContentPane" poichè non è stato ereditato e non è stato definito nella classe irc. Quote:
I metodi static possono accedere solo ad altri metodi static o a metodi costruttori o a variabili anch'esse static. poichè "main" è un metodo "static", nel suo corpo puoi richiamare solo altri "static" (metodi, variabili) oppure costruttori. Per dichiarare una variabile o un metodo "static" è sufficiente, come hai fatto più volte nel codice, aggiungere la parola chiave "static" nella dichiarazione della variabile o del metodo. |
|
![]() |
![]() |
![]() |
#51 |
Senior Member
Iscritto dal: Jun 2002
Città: Milano
Messaggi: 959
|
ho aggiunto extends JFrame ho creato questo metodo
static void setContentPane1(){ JPanel P=new JPanel(new BorderLayout()); JPanel Pannello=new JPanel(new GridLayout(2,1)); Pannello.add(testoOut); setContentPane(Pannello); } e in compilazione non mi da nessun errore però se richiamo il metodo nel main mi da questo errore non-static method setContentPane(java.awt.Container) cannot be referenced from a static context setContentPane(Pannello); ^ cosa dovrei fare per renderlo static?? |
![]() |
![]() |
![]() |
#52 |
Bannato
Iscritto dal: Nov 2001
Città: Verona
Messaggi: 1086
|
Dovresti sovrascriverlo, ma il problema è un'altro: benchè tu abbia esteso JFrame quel setContentPane(Component) non ha alcuna influenza sulla tua applicazione, per come è strutturata, perchè "irc" non è un frame visibile.
Hai detto di voler aggiungere un pannello...ma esattamente dove lo devi aggiungere? Forse vuoi una terza finestra con un pannello oppure vuoi aggiungere un altro componente ad alla finestra dell'applicazione? Affrontando in generale la questione del modificatore static, sarebbe meglio toglierli tutti. Devi riscrivere il codice in modo che il contenuto del main passi ad un altro metodo, accessibile ad un costruttore, o in un costruttore. Allego un esempio di come può essere "riscritta" l'applicazione (un copia e incolla e un paio di "canc", il codice per il resto è sempre farina del tuo sacco) |
![]() |
![]() |
![]() |
#53 |
Senior Member
Iscritto dal: Jun 2002
Città: Milano
Messaggi: 959
|
io in pratica vorrei che tutti i JFrame mi stessero dentro a una finestra principale....
grazie per avermi corretto il codice! ![]() |
![]() |
![]() |
![]() |
#54 |
Bannato
Iscritto dal: Nov 2001
Città: Verona
Messaggi: 1086
|
La faccenda va presa un po' alla larga.
Occorre innazitutto avere un'idea di come apparirà l'interfaccia (finestre bottoni e via dicendo) dell'applicazione. In pratica, da quanti pannelli è composta? Devono avere tutti le stesse dimensioni? Al momento, ad esempio, ci sono due finestre di uguale dimensione, che possono essere accorpate in un JFrame. Ne è in arrivo una terza, dove va a finire? Tutto questo fa parte della progettazione di un'interfaccia grafica. Poichè, fino ad un certo punto, puoi scrivere il codice per l'interfaccia separatamente dal resto dell'applicazione, il modo ideale di procedere sarebbe quello di farsi uno schizzo del risultato che desideri ottenere e poi riprodurlo. Allego un esempio (un'immagine gif che rappresenta lo schizzo di un'interfaccia che non c'entra nulla con quello che stiamo facendo, ma è per dare un'idea). L'importante è essere sfrontati: disegna la tua interfaccia ideale, non quella che credi di poter fare con Java perchè Java è pronto a stupirti. Ciao. |
![]() |
![]() |
![]() |
#55 |
Senior Member
Iscritto dal: Jun 2002
Città: Milano
Messaggi: 959
|
allora io avrei bisogno di creare più finestre...
in pratica una è quello della connessione con i messaggi del server poi una finestra per ogni canale e delle finestre per le conversazioni private tutte queste finestre penso che debbano essere create tramite dei metodi....per quanto riguarda i bottoni un gruppo di bottoni in alto bastano... |
![]() |
![]() |
![]() |
#56 |
Bannato
Iscritto dal: Nov 2001
Città: Verona
Messaggi: 1086
|
E' un client ben strano
![]() Potresti usare un JDesktopPane per tenere insieme tutto quanto, c'è un tutorial sul sito di sun, se vuoi un condensato ti posto un esempio. per creare un JFrame "a comando" è corretta l'intuizione di passare per un metodo. Codice:
public void createFrame(String titolo) { JFrame frame=new JFrame(titolo); JPanel panel=new JPanel(); frame.setContentPane(panel); frame.setSize(400,400); frame.show(); } |
![]() |
![]() |
![]() |
#57 |
Senior Member
Iscritto dal: Jun 2002
Città: Milano
Messaggi: 959
|
ho provato l'esempio ma non va...manca il metodo MyInternalFrame...cmq credo che abbandonerò l'idea di usare un JDesktopPane...mi sembra troppo difficile da utilizzare...
|
![]() |
![]() |
![]() |
#58 |
Bannato
Iscritto dal: Nov 2001
Città: Verona
Messaggi: 1086
|
E' complicato quanto può esserlo una nuova classe. Scrivo un esempio funzionante, in ogni caso la scelta è tua
![]() Codice:
import java.beans.PropertyVetoException; import javax.swing.*; import javax.swing.text.*; public class MainClass extends JFrame { private JDesktopPane desktop=null; public MainClass() { super("DesktopPane"); desktop=new JDesktopPane(); getContentPane().add(desktop); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setSize(500,500); show(); //proviamo il metodo appendFrame appendFrame(); } //aggiunge un JInternalFrame al desktop public void appendFrame() { JInternalFrame f=createInternalFrame(); f.setVisible(true); desktop.add(f); try { f.setSelected(true); } catch (PropertyVetoException e) { e.printStackTrace(); } } //crea un JInternalFrame public JInternalFrame createInternalFrame() { JInternalFrame f=new JInternalFrame("Titolo", true, false, false, true); JTextPane textPane=new JTextPane(new DefaultStyledDocument()); f.getContentPane().add(textPane); f.setSize(400,400); return f; } public static void main(String[] a) { new MainClass(); } } |
![]() |
![]() |
![]() |
#59 |
Senior Member
Iscritto dal: Jun 2002
Città: Milano
Messaggi: 959
|
ho provato l'esempio ma non riesco a capire come dovrei fare per poter scrivere del testo dentro al frame che vado a creare..
ho provato f.append("ciao) ma non va... |
![]() |
![]() |
![]() |
#60 |
Bannato
Iscritto dal: Nov 2001
Città: Verona
Messaggi: 1086
|
IL fatto è che non scrivi testo dentro ad un frame ma in un componente di testo.
L'esempio serve unicamente a dimostrare l'uso delle classe JInternalFrame e JDesktopPane. Se vuoi accedere a qualche componente all'interno del JInternalFrame è meglio creare una classe esterna che estenda JInternalFrame e prevedere un metodo per l'accesso al componente di testo. Ad esempio: Codice:
public class MyInternalFrame extends JInternalFrame { private JTextArea textArea=new JTextArea(); MyInternalFrame() { setLayout(new GridLayout(1,1)); add(textArea); } public void aggiungiTesto(String testo) { textArea.append(testo); } } |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 04:53.