Swing Java - Iniciante(Resolvido)

Boa tarde a todos.

Estou iniciando meus estudo em Java Swing, então criei um janela simples com um menu com apenas três opções.

Agora eu gostaria de criar um menu de botões, onde estes botões servirão de atalho para um determinada tarefa

Na imagem abaixo acho que vocês conseguirão visualizar o que pretendo

onde está marcado em azul, queria criar um barra com botões, onde eu possa personalizar estes botões, por exemplo, um botão de compras, queria personalizar ele para ter um carrinho de compras

mais ou menos como este:

alguem sabe como fazer isso com java swing?

Cara, é um menu comum, com uma imagem dentro do botão e o texto do mesmo.

Eu gostava muito desse canal, ele mostra mais ou menos como fazer esse video, mas no seu caso vc deixa a imagem

1 curtida

Em princípio você quer usar um Toolbar:

https://docs.oracle.com/javase/tutorial/uiswing/components/toolbar.html

1 curtida

@rodriguesabner e @staroski

Bom dia, obg por responderem a pergunta!

Tentei das duas formas, mas não saiu como esperava…vou tentar mostrar para vcs como está o meu código até o momento.

Neste momento tenho isto:

Para obter a janela acima, fiz este código:

package br.com.fjsistemas.ui;

import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;

public class Janela extends JFrame {

	private static final long serialVersionUID = 5970607332868341974L;

	public Janela() {
//--------------------------------------------------------------------
		setTitle("FJSistemas");
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setLocationRelativeTo(null); // propriedades da janela
		setExtendedState(JFrame.MAXIMIZED_BOTH);
//--------------------------------------------------------------------
		JMenuBar menu = new JMenuBar(); // criando a barra de menu suspensa
//--------------------------------------------------------------------
		JMenu menuCadastro = new JMenu("Cadastros");
		JMenu menuLancamento = new JMenu("Lançamentos"); // criando as opções do menu
		JMenu menuRelatorio = new JMenu("Relatórios");
//---------------------------------------------------------------------
		menuCadastro.setMnemonic('C');
		menuLancamento.setMnemonic('L'); // atalho para os menus
		menuRelatorio.setMnemonic('R');
//---------------------------------------------------------------------		
		menu.add(menuCadastro);
		menu.add(menuLancamento); // adicionando as opções ao menu
		menu.add(menuRelatorio);
//------------------------------------------------------------------------	
		JMenuItem itemProduto = new JMenuItem("Produtos");
		JMenuItem itemCliente = new JMenuItem("Clientes");
		JMenuItem itemFornecedor = new JMenuItem("Fornecedores");// criando as opções do menu cadastro
		JMenuItem itemFuncionario = new JMenuItem("Funcionários");
		JMenuItem itemFormaDePagamento = new JMenuItem("Formas de Pagamento");
//------------------------------------------------------------------------------
		JMenuItem itemVenda = new JMenuItem("Vendas");
		JMenuItem itemCompra = new JMenuItem("Compras"); // criando as opções do menu Lançamento
//---------------------------------------------------------------------------------
		JMenuItem itemRelatorioVenda = new JMenuItem("Relatório de Vendas");
		JMenuItem itemRelatorioCompra = new JMenuItem("Relatório de Compras"); // criando as opções do menu Relatorios
//------------------------------------------------------------------------------------
		menuCadastro.add(itemProduto);
		menuCadastro.add(itemCliente);
		menuCadastro.add(itemFornecedor);// adicionando as opções criadas anteriormente ao menu cadastro
		menuCadastro.add(itemFuncionario);
		menuCadastro.add(itemFormaDePagamento);
//-------------------------------------------------------------------------------------		
		menuLancamento.add(itemVenda);
		menuLancamento.add(itemCompra);// adicionando as opções criadas anteriormente ao menu Lançamentos
//----------------------------------------------------------------------------------
		menuRelatorio.add(itemRelatorioVenda);
		menuRelatorio.add(itemRelatorioCompra);// adicionando as opções criadas anteriormente ao menu Relatorios
//-----------------------------------------------------------------------------------	

		setJMenuBar(menu);
		setVisible(true);

	}

	public static void main(String[] args) {
		new Janela();
	}

}

O que quero fazer é adicionar uma “Barra de Botões” na horizontal, logo abaixo do menu (cadastro, lançamento e relatório)

ficando assim:

Mas confesso que não sei como fazer, se puderem me ajudar, fico agradecido.

eu tentei desta forma:

package br.com.fjsistemas.ui;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JToolBar;

public class Janela extends JFrame {

	private static final long serialVersionUID = 5970607332868341974L;

	public Janela() {
//--------------------------------------------------------------------
		setTitle("FJSistemas");
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setLocationRelativeTo(null); // propriedades da janela
		setExtendedState(JFrame.MAXIMIZED_BOTH);
//--------------------------------------------------------------------
		JMenuBar menu = new JMenuBar(); // criando a barra de menu suspensa
		JToolBar menuBotoes = new JToolBar(); //criando a barra de menu de botoes 
//--------------------------------------------------------------------
		JMenu menuCadastro = new JMenu("Cadastros");
		JMenu menuLancamento = new JMenu("Lançamentos"); // criando as opções do menu
		JMenu menuRelatorio = new JMenu("Relatórios");
//---------------------------------------------------------------------
		
		JButton botaoCadastrarClientes = new JButton("Cadastro de Clientes");
		menuBotoes.add(botaoCadastrarClientes);
		
		menuCadastro.setMnemonic('C');
		menuLancamento.setMnemonic('L'); // atalho para os menus
		menuRelatorio.setMnemonic('R');
//---------------------------------------------------------------------		
		menu.add(menuCadastro);
		menu.add(menuLancamento); // adicionando as opções ao menu
		menu.add(menuRelatorio);
//------------------------------------------------------------------------	
		JMenuItem itemProduto = new JMenuItem("Produtos");
		JMenuItem itemCliente = new JMenuItem("Clientes");
		JMenuItem itemFornecedor = new JMenuItem("Fornecedores");// criando as opções do menu cadastro
		JMenuItem itemFuncionario = new JMenuItem("Funcionários");
		JMenuItem itemFormaDePagamento = new JMenuItem("Formas de Pagamento");
//------------------------------------------------------------------------------
		JMenuItem itemVenda = new JMenuItem("Vendas");
		JMenuItem itemCompra = new JMenuItem("Compras"); // criando as opções do menu Lançamento
//---------------------------------------------------------------------------------
		JMenuItem itemRelatorioVenda = new JMenuItem("Relatório de Vendas");
		JMenuItem itemRelatorioCompra = new JMenuItem("Relatório de Compras"); // criando as opções do menu Relatorios
//------------------------------------------------------------------------------------
		menuCadastro.add(itemProduto);
		menuCadastro.add(itemCliente);
		menuCadastro.add(itemFornecedor);// adicionando as opções criadas anteriormente ao menu cadastro
		menuCadastro.add(itemFuncionario);
		menuCadastro.add(itemFormaDePagamento);
//-------------------------------------------------------------------------------------		
		menuLancamento.add(itemVenda);
		menuLancamento.add(itemCompra);// adicionando as opções criadas anteriormente ao menu Lançamentos
//----------------------------------------------------------------------------------
		menuRelatorio.add(itemRelatorioVenda);
		menuRelatorio.add(itemRelatorioCompra);// adicionando as opções criadas anteriormente ao menu Relatorios
//-----------------------------------------------------------------------------------	

		add(menuBotoes);
		setJMenuBar(menu);
		setVisible(true);

	}

	public static void main(String[] args) {
		new Janela();
	}

}

E o resultado foi este:

o que eu gostaria agora é deixar o botão logo abaixo do menu e remover essa “barra a esquerda”

O ToolBar ficou no centro por causa do layout utilizado, se quer que ele fique na parte superior, utilize um BorderLayout e coloque o ToolBar na posição NORTH

A barra à esquerda é por causa do Look and Feel que você está utilizando, me parece ser o Metal Look and Feel, eu recomendo usar sempre o o Look and Feel nativo do sistema operacional.

1 curtida

@staroski mais uma vez obg por sua ajuda, mas eu nao sei como fazer isso…como eu chamo essas funções?(BorderLayout e LookAndFeel)…onde eu as coloco no meu código?

Então, desenvolver telas desktop em Java envolve algum estudo.
Infelizmente a maioria pensa que é só pegar um editor visual e sair arrastando componentes na tela, mas não é bem assim.
Sugiro começar com o material a seguir:
https://docs.oracle.com/javase/tutorial/uiswing/layout/using.html

2 curtidas

@rodriguesabner e @staroski

Obg pela ajuda

Consegui desta forma:

package br.com.fjsistemas.ui;

import java.awt.FlowLayout;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JPanel;

public class Principal extends JFrame {

	private static final long serialVersionUID = 5970607332868341974L;

	public Principal() {

//---------------------------------------------------------------	

		setTitle("FJSistemas");
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // Propriedades da Janela
		setLocationRelativeTo(null);
		setExtendedState(JFrame.MAXIMIZED_BOTH);

//---------------------------------------------------------------	

		JMenuBar menu = new JMenuBar(); // criando a barra de menu suspensa

		JMenu menuCadastro = new JMenu("Cadastros");
		JMenu menuLancamento = new JMenu("Lançamentos"); // criando as opções do menu
		JMenu menuRelatorio = new JMenu("Relatórios");

		menuCadastro.setMnemonic('C');
		menuLancamento.setMnemonic('L'); // atalho para os menus
		menuRelatorio.setMnemonic('R');

		menu.add(menuCadastro);
		menu.add(menuLancamento); // adicionando as opções ao menu
		menu.add(menuRelatorio);

//----------------------------------------------------------------------	

		JMenuItem itemProduto = new JMenuItem("Produtos");
		JMenuItem itemCliente = new JMenuItem("Clientes");
		JMenuItem itemFornecedor = new JMenuItem("Fornecedores");// criando as opções do menu cadastro
		JMenuItem itemFuncionario = new JMenuItem("Funcionários");
		JMenuItem itemFormaDePagamento = new JMenuItem("Formas de Pagamento");

		JMenuItem itemVenda = new JMenuItem("Vendas");
		JMenuItem itemCompra = new JMenuItem("Compras"); // criando as opções do menu Lançamento

		JMenuItem itemRelatorioVenda = new JMenuItem("Relatório de Vendas");
		JMenuItem itemRelatorioCompra = new JMenuItem("Relatório de Compras"); // criando as opções do menu Relatorios

		menuCadastro.add(itemProduto);
		menuCadastro.add(itemCliente);
		menuCadastro.add(itemFornecedor);// adicionando as opções criadas anteriormente ao menu cadastro
		menuCadastro.add(itemFuncionario);
		menuCadastro.add(itemFormaDePagamento);

		menuLancamento.add(itemVenda);
		menuLancamento.add(itemCompra);// adicionando as opções criadas anteriormente ao menu Lançamentos

		menuRelatorio.add(itemRelatorioVenda);
		menuRelatorio.add(itemRelatorioCompra);// adicionando as opções criadas anteriormente ao menu Relatorios

//---------------------------------------------------------------------------		

		getContentPane().setLayout(null);// criando um layout absoluto

		JPanel panel = new JPanel();// criando um painel
		FlowLayout flowLayout = (FlowLayout) panel.getLayout();// definindo o layout do painel
		flowLayout.setAlignment(FlowLayout.LEFT);// alinhamento do layout a esquerda
		panel.setBounds(0, 0, 1513, 32);// medidas do painel
		getContentPane().add(panel);// adicionando o painel ao layout

		JButton btnCadastroProduto = new JButton("Cadastro Produtos");// criando o botão Cadastro
		panel.add(btnCadastroProduto);// adicionando o botão ao painel

		JButton btnCadastroCliente = new JButton("Cadastro Clientes");
		panel.add(btnCadastroCliente);

		JButton btnCadastroFornecedor = new JButton("Cadastro Fornecedores");
		panel.add(btnCadastroFornecedor);

		JButton btnCadastroFuncionario = new JButton("Cadastro Funcionários");
		panel.add(btnCadastroFuncionario);

		JButton btnCadastroFormaPagamento = new JButton("Forma de Pagamento");
		panel.add(btnCadastroFormaPagamento);

		JButton btnVenda = new JButton("Lançamento de Vendas");
		panel.add(btnVenda);

		JButton btnCompras = new JButton("Lançamento de Compras");
		panel.add(btnCompras);

		JButton btnRelatorioVendas = new JButton("Relatório de Vendas");
		panel.add(btnRelatorioVendas);

		JButton btnRelatorioCompras = new JButton("Relatório de Compras");
		panel.add(btnRelatorioCompras);

		setJMenuBar(menu);// Tornando o menu suspenso visivel
		setVisible(true);// Torna a Janela Visivel

	}

	public static void main(String[] args) {
		new Principal();
	}
}

1 curtida