Visualizzazione dei risultati da 1 a 5 su 5

Discussione: [JAVA] Domande Varie

  1. #1

    Allineamento Di Una Componente In Una Jpanel

    Sto implementando un editor di testo con il quale uso una routine di ricerca e sostituzione del testo. Premetto anticipatamente che il programma funziona, vorrei migliorare il layout in modo tale che i campi di testo oltre che essere posizionati nella parte sud del pannello, questi siano allineati anche a sinistra. Per comodità non riporto l'intero codice del programma ma solo la parte interessata:

    codice:
    //AGGIUNGE UN PULSANTE PER TROVARE DEL TESTO NELL'AREA DI TESTO
    		JButton replaceButton = new JButton("Sostituisci");
    		panel.add(replaceButton);	//inserisce il pulsante fra uno degli elementi del pannello
    		//imposta il gestore di eventi del pulsante insert
    		replaceButton.addActionListener(new
    			ActionListener(){
    				public void actionPerformed(ActionEvent event){
    					//acquisisce il testo dalla casella di testo Sostituisci
    					String f = from.getText();
    					//acquisisce la posizione della sottoscritta eventualemente presente nell'area di testo
    					int n = textArea.getText().indexOf(f);
    					if(n >= 0 && f.length() > 0)
    						//sostuistuisce la sottostringa con quella nuova
    						textArea.replaceRange(to.getText(), n,
    							n + f.length());
    				}//actionPerformed	
    			});//addActionListener
    		//aggiunge una casella di testo dove inserire il testo da trovare
    		from = new JTextField("", 8);	
    		panel.add(from);	//inserisce la casella di testo fra uno degli elementi del pannello
    		//inserisce l'etichetta
    		panel.add(new JLabel("Con"));
    		//aggiunge una casella di testo dove inserire il testo da sostituire
    		to = new JTextField("", 8);	
    		panel.add(to);	//inserisce la casella di testo fra uno degli elementi del pannello
    		//posiziona i pulsanti in basso al frame
    		contentPane.add(panel, BorderLayout.SOUTH);
    Giuseppe SPECCHIO

  2. #2

    Menu' Di Scelta Rapida

    Sto implementando un editor di testo con il quale per velocizzare le oprazioni di taglia copia ed incolla l'utente può usare anche il menù di scelta rapida utilizzando il tasto destro del mouse. Preciso che la compilazione va a buon termine, ma quando premo il tasto destro del mouse non compare alcun menù. Per comodità non riporto l'intero codice del programma ma solo la parte interessata:

    codice:
    		//MENU A SCELTA RAPIDA
    		popup = new JPopupMenu();
    		popup.add(cutAction);
    		popup.add(copyAction);
    		popup.add(pasteAction);
    		//aggiunge la lista di eventi del maouse quando si preme il tasto destro
    		getContentPane().addMouseListener(new
    			MouseAdapter(){
    				public void mouseRelesed(MouseEvent event){
    					if(event.isPopupTrigger())
    						popup.show(event.getComponent(),
    							event.getX(), event.getY());	
    				}//mouseRelesed		
    			});//MouseAdapter
    Giuseppe SPECCHIO

  3. #3

    Implementare Le Operazioni Di Taglia Copia Ed Incolla

    Sto implementando un editor di testo con il quale vorrei permettere all'utente di utilzzare una barra degli strumenti dalla quale scegliendo il menu edit può effettuare le operazioni di taglia, copia ed incolla, ma sfortunatamente sul libro che mi hanno prestato non c'è nessun riferimento in merito, pertanto se sareste così gentili da fornirmi il codice sorgente per sviluppare tali aventi. Per comodità non riporto l'intero codice del programma ma solo la parte interessata:

    codice:
    		//menu di massimo livello EDIT con casella di controllo e pulsanti di scelta nonchè voci con icone
    		JMenu editMenu = new JMenu("Edit");
    		//mostra il tasto mnemonico
    		editMenu.setMnemonic('E');
    		//pulsanti con icone
    		Action cutAction = new TestAction("Cut");
    		cutAction.putValue(Action.SMALL_ICON,
    			new ImageIcon("cut.gif"));
    		Action copyAction = new TestAction("Copy");
    		copyAction.putValue(Action.SMALL_ICON,
    			new ImageIcon("copy.gif"));
    		Action pasteAction = new TestAction("Paste");
    		pasteAction.putValue(Action.SMALL_ICON,
    			new ImageIcon("paste.gif"));
    		//aggiungo le voci al menu Edit
    		editMenu.add(cutAction);
    		editMenu.add(copyAction);
    		editMenu.add(pasteAction);
    Giuseppe SPECCHIO

  4. #4

    Modificare Il Layout Del Testo In Una Textarea

    Sto implementando un editor di testo con il quale mediante l'uso di una barra degli strumenti vorrei permettere ad un utente di:
    - modificare il tipo del carattere;
    - modificare la grandezza del carattere;
    - rendere il testo in grassetto e/o corsivo e/o sottolineato;
    - allineare il testo a sinistra, centro o a destra.
    Preciso che per quanto riguarda i primi 3 punti sono riuscito ad implementarli solo che non riesco a far combaciare contemporaneamente gli eventi, cioè ad esempio se il testo è in grassetto e lo voglio far diventare grassetto-corsivo, quando clicco sul pulsante del corsivo ci diventa ma perde l'aspetto del grassetto. Per quanto riguarda l'allineamento del testo sul libro che mi hanno prestato non ho trovato riferimenti in merito.
    Inoltre risulterebbe utile che le modifiche venghino applicate anche ad una sola parte del testo ovvero una parte evidenziata od a partire dal punto in cui si trova il cursore del testo.
    Per comodità non riporto l'intero codice del programma ma solo la parte interessata:

    codice:
    		//CASELLA COMBINATA PER LA GRANDEZZA DEL TESTO
    		sizeCombo = new JComboBox();
    		//disabilita la modifica da parte dell'utente
    		sizeCombo .setEditable(true);
    		//aggiunge voci alla casella
    		sizeCombo.addItem("8");
    		sizeCombo.addItem("10");
    		sizeCombo.addItem("12");
    		sizeCombo.addItem("14");
    		sizeCombo.addItem("16");
    		// rilevatore di eventi della casella combinata cambia il carattere del testo con quello selezionato
    		sizeCombo.addActionListener(new
    			ActionListener(){
    			public void actionPerformed(ActionEvent event){
    				fontSize = Integer.parseInt((String)sizeCombo.getSelectedItem());
    				font = new Font(fontFace, fontStyle, fontSize);
    				textArea.setFont(font);
    				textArea.repaint();	
    			}//actionPerformed
    		});
    		//CASELLA COMBINATA PER I TIPI DI CARATTERE
    		faceCombo = new JComboBox(); 
    		//disabilita la modifica da parte dell'utente
    		faceCombo .setEditable(false);
    		//aggiunge voci alla casella
    		faceCombo.addItem("Serif");
    		faceCombo.addItem("SansSerif");
    		faceCombo.addItem("Monospaced");
    		faceCombo.addItem("Dialog");
    		faceCombo.addItem("DialogInput");
    		// rilevatore di eventi della casella combinata cambia il carattere del testo con quello selezionato
    		faceCombo.addActionListener( new
    			ActionListener(){
    				public void actionPerformed(ActionEvent event){
    					fontFace = (String)faceCombo.getSelectedItem();
    					font = new Font(fontFace, fontStyle, fontSize);
    					textArea.setFont(font);
    					textArea.repaint();	
    				}//actionPerformed
    		});
    		Action alignLeftAction = new 
    			AbstractAction("Align on the left", new ImageIcon("left.gif")){
    				public void actionPerformed(ActionEvent event){
    					textArea.setText("Allinea il testo a sinistra");	
    				}//actionPerformed	
    			};//AbstractAction
    		Action alignCenterAction = new 
    			AbstractAction("Align to the center", new ImageIcon("center.gif")){
    				public void actionPerformed(ActionEvent event){
    					textArea.setText("Allinea il testo al centro");	
    				}//actionPerformed	
    			};//AbstractAction
    		Action alignRightAction = new 
    			AbstractAction("Align on the right", new ImageIcon("right.gif")){
    				public void actionPerformed(ActionEvent event){
    					textArea.setText("Allinea il testo a destra");	
    				}//actionPerformed	
    			};//AbstractAction
    		
    		JButton boldButton = new JButton(new ImageIcon("bold.gif"));
    		boldButton.addActionListener(new
    			ActionListener(){
    				public void actionPerformed(ActionEvent event){
    					fontStyle = Font.BOLD;
    					font = new Font(fontFace, fontStyle, fontSize);
    					textArea.setFont(font);
    					textArea.repaint();	
    				}//actionPerformed
    		});
    		JButton italicButton = new JButton(new ImageIcon("italic.gif"));
    		italicButton.addActionListener(new
    			ActionListener(){
    				public void actionPerformed(ActionEvent event){
    					fontStyle = Font.ITALIC;
    					font = new Font(fontFace, fontStyle, fontSize);
    					textArea.setFont(font);
    					textArea.repaint();	
    				}//actionPerformed
    		});
    		JButton underlineButton = new JButton(new ImageIcon("underline.gif"));
    		underlineButton.addActionListener(new
    			ActionListener(){
    				public void actionPerformed(ActionEvent event){
    					textArea.setText("Sottolinea il testo");	
    				}//actionPerformed
    		});
    Giuseppe SPECCHIO

  5. #5
    Associa ai tre JButton per il bold e italic lo stesso ascoltatore e al suo interno fai una cosa simile:

    codice:
    fontSize=(bold.isSelected()?Font.BOLD : 0)+(italic.isSelected()?Font.ITALIC:0);
    
    font = new Font(fontFace, fontStyle, fontSize);
    Se vuoi applicare le modifiche solo ad una parte di testo devi usare un JTextPane .

    CIauz
    Lang=Java
    Ambiente = Eclipse forever
    Ubuntu & Win XP Pro

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.