From 0b407497ab5cff29edffe63c03427c3d4edaaa50 Mon Sep 17 00:00:00 2001 From: 230404 <230404@epvc.pt> Date: Wed, 25 Mar 2026 21:12:52 +0000 Subject: [PATCH] aviso --- Awesome_API/src/Main.java | 50 ++++++++++++++++----------------------- 1 file changed, 21 insertions(+), 29 deletions(-) diff --git a/Awesome_API/src/Main.java b/Awesome_API/src/Main.java index c72ee59..8c785ec 100644 --- a/Awesome_API/src/Main.java +++ b/Awesome_API/src/Main.java @@ -8,7 +8,7 @@ import javax.swing.border.EmptyBorder; public class Main extends JFrame { - // Cores do Design Moderno + // Cores do Design private static final Color COLOR_BG_TOP = new Color(138, 180, 248); private static final Color COLOR_BG_BOTTOM = new Color(25, 103, 210); private static final Color COLOR_CARD = new Color(255, 255, 255, 220); @@ -29,7 +29,7 @@ public class Main extends JFrame { private JLabel lblResult; private JLabel lblResultSub; - // Texto de Exemplo (Placeholder) + // Texto de Exemplo private final String PLACEHOLDER_TEXT = "Ex: 100.00"; public Main() { @@ -38,7 +38,7 @@ public class Main extends JFrame { setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setLocationRelativeTo(null); - // Painel Principal com Gradiente Azul + // Painel Principal JPanel mainPanel = new JPanel() { @Override protected void paintComponent(Graphics g) { @@ -55,7 +55,7 @@ public class Main extends JFrame { mainPanel.setBorder(new EmptyBorder(20, 20, 20, 20)); setContentPane(mainPanel); - // --- TÍTULO --- + // título JLabel title = new JLabel("Conversor de Moedas", SwingConstants.CENTER); title.setFont(new Font("Segoe UI", Font.BOLD, 30)); title.setForeground(Color.WHITE); @@ -63,7 +63,7 @@ public class Main extends JFrame { mainPanel.add(title); mainPanel.add(Box.createVerticalStrut(20)); - // --- CARTÃO 1: SELEÇÃO DE MOEDAS --- + // seleção de moedas RoundedPanel cardMoedas = new RoundedPanel(); cardMoedas.setLayout(new BoxLayout(cardMoedas, BoxLayout.Y_AXIS)); @@ -80,7 +80,7 @@ public class Main extends JFrame { cmbTo = new JComboBox<>(moedaDisplay); styleComboBox(cmbTo); - cmbTo.setSelectedIndex(2); // Padrão BRL + cmbTo.setSelectedIndex(2); JPanel pnlDe = new JPanel(new FlowLayout(FlowLayout.LEFT)); pnlDe.setOpaque(false); pnlDe.add(lblDe); JPanel pnlPara = new JPanel(new FlowLayout(FlowLayout.LEFT)); pnlPara.setOpaque(false); pnlPara.add(lblPara); @@ -94,7 +94,7 @@ public class Main extends JFrame { mainPanel.add(cardMoedas); mainPanel.add(Box.createVerticalStrut(15)); - // --- CARTÃO 2: QUANTIDADE COM PLACEHOLDER --- + // Quantidade a Converter RoundedPanel cardValor = new RoundedPanel(); cardValor.setLayout(new BoxLayout(cardValor, BoxLayout.Y_AXIS)); @@ -103,18 +103,16 @@ public class Main extends JFrame { lblVal.setForeground(Color.DARK_GRAY); JPanel pnlVal = new JPanel(new FlowLayout(FlowLayout.LEFT)); pnlVal.setOpaque(false); pnlVal.add(lblVal); - // Configuração do Placeholder txtValue = new JTextField(PLACEHOLDER_TEXT); - txtValue.setForeground(Color.GRAY); // Cor de texto fantasma + txtValue.setForeground(Color.GRAY); styleTextField(txtValue); - // Evento para limpar o placeholder quando se clica txtValue.addFocusListener(new FocusAdapter() { @Override public void focusGained(FocusEvent e) { if (txtValue.getText().equals(PLACEHOLDER_TEXT)) { txtValue.setText(""); - txtValue.setForeground(Color.BLACK); // Volta à cor normal para o user escrever + txtValue.setForeground(Color.BLACK); } } @@ -122,7 +120,7 @@ public class Main extends JFrame { public void focusLost(FocusEvent e) { if (txtValue.getText().isEmpty()) { txtValue.setForeground(Color.GRAY); - txtValue.setText(PLACEHOLDER_TEXT); // Volta o texto fantasma se não escreverem nada + txtValue.setText(PLACEHOLDER_TEXT); } } }); @@ -132,7 +130,7 @@ public class Main extends JFrame { mainPanel.add(cardValor); mainPanel.add(Box.createVerticalStrut(20)); - // --- BOTÕES PRINCIPAIS --- + // Botões principais JButton btnConvert = new RoundedButton("Converter Agora", COLOR_BTN_PRIMARY, Color.BLACK); mainPanel.add(btnConvert); mainPanel.add(Box.createVerticalStrut(10)); @@ -142,7 +140,7 @@ public class Main extends JFrame { mainPanel.add(btnInvert); mainPanel.add(Box.createVerticalStrut(20)); - // --- CARTÃO 3: RESULTADO --- + //Resultado RoundedPanel cardResult = new RoundedPanel(); cardResult.setLayout(new BoxLayout(cardResult, BoxLayout.Y_AXIS)); @@ -170,16 +168,21 @@ public class Main extends JFrame { mainPanel.add(cardResult); - // --- LÓGICA DO BOTÃO CONVERTER --- + // Botão de Converter btnConvert.addActionListener(e -> { int indexFrom = cmbFrom.getSelectedIndex(); int indexTo = cmbTo.getSelectedIndex(); + // AQUI ESTÁ O TEU AVISO! Se as moedas forem iguais, dispara o pop-up e para por aqui. + if (indexFrom == indexTo) { + JOptionPane.showMessageDialog(this, "Não podes escolher a mesma moeda! Altera uma delas.", "Aviso", JOptionPane.WARNING_MESSAGE); + return; + } + String input = txtValue.getText().replace(",", "."); - // Verifica se o utilizador não escreveu nada e deixou o placeholder lá if (input.equals(PLACEHOLDER_TEXT) || input.isEmpty()) { - JOptionPane.showMessageDialog(this, "Insere um número válido, senão vai dar merda!", "Erro", JOptionPane.ERROR_MESSAGE); + JOptionPane.showMessageDialog(this, "Insere um número válido!", "Erro", JOptionPane.ERROR_MESSAGE); return; } @@ -187,13 +190,7 @@ public class Main extends JFrame { try { val = Double.parseDouble(input); } catch (NumberFormatException ex) { - JOptionPane.showMessageDialog(this, "Apenas números, por favor. Senão vai dar merda!", "Erro", JOptionPane.ERROR_MESSAGE); - return; - } - - if (indexFrom == indexTo) { - lblResult.setText(String.format("%.2f %s", val, moedaAbrev[indexTo])); - lblResultSub.setText(moedaDisplay[indexTo]); + JOptionPane.showMessageDialog(this, "Apenas números, por favor.", "Erro", JOptionPane.ERROR_MESSAGE); return; } @@ -220,7 +217,6 @@ public class Main extends JFrame { }).start(); }); - // Foca o ecrã para o placeholder funcionar logo na primeira vez getContentPane().requestFocusInWindow(); } @@ -253,9 +249,6 @@ public class Main extends JFrame { else throw new Exception("Chave 'bid' não encontrada."); } - // --- CLASSES DE ESTILO CUSTOMIZADAS --- - - // Painel Arredondado class RoundedPanel extends JPanel { public RoundedPanel() { setOpaque(false); @@ -275,7 +268,6 @@ public class Main extends JFrame { } } - // Botão Arredondado class RoundedButton extends JButton { private Color bgColor; public RoundedButton(String text, Color bg, Color fg) {