Simular um Prompt de Comando com swing

8 respostas
Z

Olá amigos,
Alguem teria um exemplo de como eu posso simular um prompt de comando com swing ou outro tipo de interface para rodar no netbeans…
ou alguma ideia…
obrigado a todos.

8 Respostas

A

Fazer uma frame tipo um console ?? Se for, vai um exemplo:

import java.awt.Color;

/**
 *
 * @author Alysson Bandeira
 */
@SuppressWarnings("serial")
public class ConsoleFrame extends javax.swing.JFrame {

       private javax.swing.JScrollPane jScrollPane1;

       private javax.swing.JTextArea jTextArea1;

       public ConsoleFrame() {
               initComponents();
               setTitle("Console");
       }

       private void initComponents() {

               jScrollPane1 = new javax.swing.JScrollPane();
               jTextArea1 = new javax.swing.JTextArea();
               jTextArea1.setBackground(Color.BLACK);
               jTextArea1.setCaretColor(Color.GREEN);
               jTextArea1.setForeground(Color.GREEN);

               setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

               jTextArea1.setColumns(20);
               jTextArea1.setRows(5);
               jScrollPane1.setViewportView(jTextArea1);

               javax.swing.GroupLayout layout = new javax.swing.GroupLayout(
                               getContentPane());
               getContentPane().setLayout(layout);
               layout.setHorizontalGroup(layout.createParallelGroup(
                               javax.swing.GroupLayout.Alignment.LEADING).addComponent(
                               jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 410,
                               Short.MAX_VALUE));
               layout.setVerticalGroup(layout.createParallelGroup(
                               javax.swing.GroupLayout.Alignment.LEADING).addComponent(
                               jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 300,
                               Short.MAX_VALUE));

               pack();
       }

       public static void main(String args[]) {
               java.awt.EventQueue.invokeLater(new Runnable() {
                       public void run() {
                               new ConsoleFrame().setVisible(true);
                       }
               });
       }

}

Valeu

Z

É mais ou menos isso amigo…
ate ai eu consigo fazer…
eu nao consigo e criar funções por exemplo
quado abri o prompt aparecer algo para escolher
1 - Ver Conexao
2 - Ver IP
3 - Ver Sistema Operacional.
ai quado eu digitar um numero ele funcionar enternde?
como tipo um case dentro de um frame num jTextArea
ou se tiver alguma outra forma mais facil…

T

acopiara, muito legal esse seu codigo
eu tambem estava pensando em algo do tipo, seu codigo veio em boa hora…rs
abraco

D

Você já deu uma olhada no sourceforge?

tem alguns projetos que talvez te ajudem:






http://sourceforge.net/projects/jcons/ (esse aqui até eu vou dar uma olhada hehehe)

fw

A

Coloquei algumas funções nesse código exemplo:

import java.awt.Color;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;

/**
 * 
 * @author Alysson Bandeira
 */
@SuppressWarnings("serial")
public class ConsoleFrame extends javax.swing.JFrame {

	private javax.swing.JScrollPane jScrollPane1;

	private javax.swing.JTextArea jTextArea1;

	public ConsoleFrame() {
		initComponents();
		setTitle("Console");
	}

	private void initComponents() {

		jScrollPane1 = new javax.swing.JScrollPane();
		jTextArea1 = new javax.swing.JTextArea();
		jTextArea1.setBackground(Color.BLACK);
		jTextArea1.setCaretColor(Color.GREEN);
		jTextArea1.setForeground(Color.GREEN);
		jTextArea1.addKeyListener(new KeyListener() {

			public void keyPressed(KeyEvent e) {
				if (e.getKeyCode() == 10) {
					String[] dados = jTextArea1.getText().split("\n");
					String funcao = dados[dados.length - 1];
					if ("SOMA".equalsIgnoreCase(funcao)) {
						System.out.println("SOMA");
					} else if ("DIV".equalsIgnoreCase(funcao)) {
						System.out.println("DIVISAO");
					} else if ("EXIT".equalsIgnoreCase(funcao)) {
						System.exit(0);
					}

					else {
						System.out.println("Função inexistente");
					}

				}

			}

			public void keyReleased(KeyEvent e) {
				// TODO Auto-generated method stub

			}

			public void keyTyped(KeyEvent e) {
				// TODO Auto-generated method stub

			}

		});

		setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

		jTextArea1.setColumns(20);
		jTextArea1.setRows(5);
		jScrollPane1.setViewportView(jTextArea1);

		javax.swing.GroupLayout layout = new javax.swing.GroupLayout(
				getContentPane());
		getContentPane().setLayout(layout);
		layout.setHorizontalGroup(layout.createParallelGroup(
				javax.swing.GroupLayout.Alignment.LEADING).addComponent(
				jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 410,
				Short.MAX_VALUE));
		layout.setVerticalGroup(layout.createParallelGroup(
				javax.swing.GroupLayout.Alignment.LEADING).addComponent(
				jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 300,
				Short.MAX_VALUE));

		pack();
	}

	public static void main(String args[]) {
		java.awt.EventQueue.invokeLater(new Runnable() {
			public void run() {
				new ConsoleFrame().setVisible(true);
			}
		});
	}

}
Z

Amigo…
tem como sair o resultado na jTextArea1 das funções para navegar por menu
Tipo
1 Mostrar IP
2 Mostrar SO
obrigado.

A

Basta adicionar o texto no jTextArea, usando o metodo append(String);

Z

Amigo Obrigado pelas Dicas…
Mas gostaria de fazer outra pergunta…
agora ta funcionando legal sai tudo na jTextArea1
tem como eu fazer no prompt um sinal tipo Sistama:> para cada comando aparecer isso

Sistema:> e aqui para digitar o que eu quero fazer? tipo o dos entende?

obrigado

Criado 6 de janeiro de 2008
Ultima resposta 7 de jan. de 2008
Respostas 8
Participantes 4