Tabuada no JOptionPane

10 respostas
javatar

Chegou outra dúvida, rsrsrs
eu tenho que exibir uma tabuada, do 1 ao 5 em um bloco de cima
e do 6 ao 10 no bloco de baixo, e a String ex, não está aceitando o código \t, só aceita espaço.... e está saindo assim
[img]http://img337.imageshack.us/img337/2927/semttuloxmo.jpg[/img]

o código
import javax.swing.JOptionPane;

public class TabuadaF1a10c {
	public static void main (String []args){
	String ex = "";

		for(int a =1;a<=10;a++){
			for(int b=1;b<=5;b++){
				ex +=(b+ "x" +a+ "=" +(b*a)+"              ");
			}		
				ex +=(" ");
				ex +=("\n");
				
		}
				ex +=(" ");
				ex +=("\n");
		for(int a =1;a<=10;a++){
			for(int b=6;b<=10;b++){
				ex +=(b+ "x" +a+ "=" +(b*a)+"            ");
			}		
				ex +=(" ");
				ex +=("\n");
				
		}	
				JOptionPane.showMessageDialog(null, ex);				
	}
}

Obrigado

10 Respostas

A

Olá, é simples crie uma string para cada tabuada, concatene os valores. após crie uma String de saida e com um for concatene as strings novamente ate o cinco
após isto concatene um \n e concatene com o for novamente o restante das strings

javatar

Me mostre no meu código isso…

Marcio_Lima

Inclua a tabulação e mande o resultado via JTextArea
Exemplo:

for(int a =1;a<=10;a++){ 
   . . .
     ex +=(b+ "x" +a+ "=" +(b*a)+" \t");
    . . .
    }     
    JTextArea JtxArea = new JTextArea(ex);
    JOptionPane.showMessageDialog(null, JtxArea);
javatar

Saiu desse jeito e o código ficou assim…

import javax.swing.JTextArea;  
import javax.swing.JOptionPane;

public class TabuadaF1a10c {
	public static void main (String []args){
	String ex = "";

		for(int a =1;a<=10;a++){
			for(int b=1;b<=5;b++){
				 ex +=(b+ "x" +a+ "=" +(b*a)+" \t");  
			}		
				ex +=(" ");
				ex +=("\n");
				
		}
				ex +=(" ");
				ex +=("\n");
		for(int a =1;a<=10;a++){
			for(int b=6;b<=10;b++){
				 ex +=(b+ "x" +a+ "=" +(b*a)+" \t");  
			}		
				ex +=(" ");
				ex +=("\n");
				
		}	
				JTextArea JtxArea = new JTextArea(ex);  
   				JOptionPane.showMessageDialog(null, JtxArea);  				
	}
}

Por favor… me explique o que é JTextArea e onde pode ser usado, pois vi que é muito bom para exibição de textos =)

Marcio_Lima

O JTextArea é um área para textos que pode conter várias linhas e várias colunas, próprio para edição de textos.
Pode ser utilizado internamente ou apresentado em um painel, por exemplo.

Aproveitando o ensejo, informo que a concatenação de Strings não é aconselhável, pois, a cada concatenação, é criado um novo String. A recomendação é para utilizar o StringBuilder.

javatar

Refaça meu código por favor usando StringBuilder, e pq ele é melhor?(sou bem novato em java)

OneSr

javatar, não é por nada, mas você quer que o cara faça tudo por você, cheque as documentações online do java, posts por ai, enfim a rede é grande, afinal você não terá um “salvador” do seu lado quando tiver fazendo um projeto real. :slight_smile:

javatar

Pior que é verdade :frowning:
Mais eu procurei saber sobre documentação e tals, mais a maioria são em inglês, vou ter que pesquisar alguns exemplos feitos em fóruns =)

Marcio_Lima

Exemplo:

// declaração
    StringBuilder ex = new StringBuilder();   
    . . .   
    // atribuição
    ex.append(b+ "x" +a+ "=" +(b*a)+" \t"); 
    . . .     
    // referência
    JTextArea JtxArea = new JTextArea([b]ex.toString()[/b]);

Faça um esforço para entender o Inglês, pois será muito importante para sua carreira.

Allan_Barcelos

Exemplo com JTextArea e Scroll :

import java.awt.BorderLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Vector;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;

public class FrameAgenda extends JFrame{

	PanelAgenda ph;
	
	public FrameAgenda(BST cf){
		setTitle("Contatos");
		this.add(ph = new PanelAgenda(this, cf));
		this.setLocationRelativeTo(null);
		this.add(ph);
		this.setLayout(null);
		this.setContentPane(ph);
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		this.setVisible(true);
		this.setResizable(false);
		this.pack();
	}
	
	public void fechaJanela(){
		this.setVisible(false);
		this.dispose();
	}
	
	public class PanelAgenda extends JPanel implements ActionListener{
		
		JFrame frame;
		BST c;
		JTextArea ta;
		JButton voltar;
		JScrollPane scrollPane;
		Vector <String> historico = new Vector <String> (1,1);
		
		public PanelAgenda(JFrame f, BST cof){
			c = cof;
			frame = f;
			
			 ta = new JTextArea(7,30);
			 ta.setEditable(false);
			 
			 this.preencheArea();
			 
			 voltar = new JButton("Voltar");
			 voltar.addActionListener(this);
			 
			 scrollPane = new JScrollPane(ta);
			 

	        JPanel buttonPanel = new JPanel();
	        JPanel buttonPanel2 = new JPanel();
	        
	        buttonPanel.setLayout(new GridLayout());
	        buttonPanel2.setLayout(new GridLayout(5,5));
	        
	        
	        buttonPanel.add(scrollPane);
	        buttonPanel2.add(voltar);

	        
	        add(buttonPanel, BorderLayout.PAGE_START);
	        
	        add(buttonPanel2, BorderLayout.CENTER);
		}
		
		public void preencheArea(){
			inorder(c.getRootNode());
		}
		public void inorder(BSTNode p){
				if (p != null) {
					inorder(p.left);
					ta.append("? Nome: "+p.key.getNome()+"\n");
					ta.append("? Estado: "+p.key.getEstado()+"\n");
					ta.append("? Telefone: "+p.key.getTelefone()+"\n");
					ta.append("? CEP: "+p.key.getCep()+"\n");					
					ta.append("? Cidade: "+p.key.getCidade()+"\n");
					ta.append("? Endereco: rua "+p.key.getEndereco()+"\n");
					ta.append("\n");
					inorder(p.right);
				}
			}
		
		public void actionPerformed(ActionEvent e) {
			
			if(e.getSource() == voltar){
				FramePrincipal fp = new FramePrincipal(c);
				this.setVisible(false);
				this.fecha();
			}	
		}
		
		public void fecha(){
			frame.dispose();
		}
			
		}

	}

Esse é uma tela que eu tinha feito pra mostrar os contatos de uma agenda com scroll

Criado 30 de setembro de 2010
Ultima resposta 4 de out. de 2010
Respostas 10
Participantes 5