Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package pokedex.view;
- import java.awt.*;
- import javax.swing.*;
- import javax.swing.border.Border;
- public class Appearance extends JFrame {
- public Appearance() { }
- /**
- * Tenta usar a classe responsável pela aparência do sistema operacional.
- * @param c component onde deve ser aplicado a aparência
- * @return true = OK
- */
- public boolean useSystemAppearance( Component c ) {
- boolean init = false;
- try {
- UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
- SwingUtilities.updateComponentTreeUI(c);
- init = true;
- } catch( ClassNotFoundException | IllegalAccessException |
- InstantiationException | UnsupportedLookAndFeelException e ) { }
- return init;
- }
- /**
- * Cria um novo botão de acordo com as definições na classe
- * @param j Jbutton
- * @return
- */
- public JButton createDefaultButton( JButton j ){
- j.setFocusable(false);
- j.setContentAreaFilled(false);
- j.setCursor(Cursor.getPredefinedCursor(12)); // cursor de "mão"
- j.setBorder(buttonDefaulBorder);
- j.setSize(buttonSize);
- j.setFont(defaultFont);
- j.setForeground(buttonForegroundColor);
- return j;
- }
- /**
- * Cria um novo textField de acordo com as definições na classe
- * @param j JTextField
- * @param textFieldName
- * @return
- */
- public JTextField createDefaultTextField( JTextField j, String textFieldName ){
- j.setName(textFieldName);
- j.setBackground(Color.WHITE);
- j.setBorder(textFieldDefaultBorder);
- j.setFont(defaultFont);
- j.setSize(textFieldSize);
- j.setForeground(textFieldForegroundColor);
- return j;
- }
- /**
- * Cria uma nova textArea de acordo com as definições na classe
- * @param j JTextArea
- * @param textAreaName
- * @return
- */
- public JTextArea createDefaultTextArea( JTextArea j, String textAreaName ){
- j.setName(textAreaName);
- j.setBackground(Color.WHITE);
- j.setBorder(textFieldDefaultBorder);
- j.setFont(defaultFont);
- j.setSize(textAreaSize);
- j.setLineWrap(true);
- j.setWrapStyleWord(true);
- j.setForeground(textFieldForegroundColor);
- return j;
- }
- /**
- * Cria uma nova ComboBox de acordo com as definições na classe
- * @param j J ComboBox
- * @return
- */
- public JComboBox createDefaultComboBox( JComboBox j ){
- j.setFont(defaultFont);
- j.setSize(comboBoxSize);
- j.setBackground(null);
- j.setForeground(new Color(120, 120, 120));
- return j;
- }
- public JLabel createDefaultConfirmJLabel( JLabel j ){
- j.setFont(defaultFont);
- j.setForeground(new Color(100, 200, 50));
- return j;
- }
- /**
- * Define o campo de acordo com o parametro state
- * @param j JTextField
- * @param state true = editável, false = não editável
- */
- public void setTextFieldStatus( JTextField j, boolean state ){
- if( !state ) j.setEditable(false);
- else j.setEditable(true);
- }
- /**
- * Define o campo de acordo com o parametro state
- * @param j JTextArea
- * @param state true = editável, false = não editável
- */
- public void setTextAreaStatus ( JTextArea j, boolean state ){
- if( !state ) j.setEditable(false);
- else j.setEditable(true);
- }
- /**
- * Ação de "Hover" no JButton
- * @param j JButton
- * @param hover
- */
- public void buttonHover(JButton j, boolean hover) {
- if (hover) j.setBorder(buttonHoverBorder);
- else j.setBorder(buttonDefaulBorder);
- }
- /**
- * Ação de "Hover" no JTextfield
- * @param j JButton
- * @param hover
- */
- public void textFieldHover( JTextField j, boolean hover ){
- if (hover) j.setBorder(textFieldHoverBorder);
- else j.setBorder(textFieldDefaultBorder);
- }
- /**
- * Ação de "Hover" na JTextArea
- * @param j JButton
- * @param hover
- */
- public void textAreaHover( JTextArea j, boolean hover ){
- if (hover) j.setBorder(textFieldHoverBorder);
- else j.setBorder(textFieldDefaultBorder);
- }
- /**
- * Ação de "focus" em um textField
- * @param j
- * @param focus
- */
- public void textFieldFocus( JTextField j, boolean focus ) {
- if (focus) {
- j.setBorder(textFieldHoverBorder);
- if (j.getText().equals(j.getName()))
- j.setText("");
- j.setForeground(textFieldForegroundFocusColor);
- }
- else {
- j.setBorder(textFieldDefaultBorder);
- if(j.getText().equals("") || j.getText() == null)
- j.setText(j.getName());
- j.setForeground(textFieldForegroundColor);
- }
- }
- /**
- * Ação de "focus" em um textArea
- * @param j
- * @param focus
- */
- public void textAreaFocus( JTextArea j, boolean focus ) {
- if (focus) {
- j.setBorder(textFieldHoverBorder);
- if (j.getText().equals(j.getName()))
- j.setText("");
- j.setForeground(textFieldForegroundFocusColor);
- }
- else {
- j.setBorder(textFieldDefaultBorder);
- if(j.getText().equals("") || j.getText() == null)
- j.setText(j.getName());
- j.setForeground(textFieldForegroundColor);
- }
- }
- /**
- * Mostrar ou esconder um componente
- * @param c Component
- * @param state false = esconde, true = mostra
- */
- public void componentVisible ( Component c, boolean state ){
- if (!state) c.setVisible(false);
- else c.setVisible(true);
- }
- /* TAMANHOS */
- private Dimension buttonSize = new Dimension( 200, 40 ),
- textFieldSize = new Dimension( 300, 40 ),
- textAreaSize = new Dimension( 300, 100 ),
- comboBoxSize = new Dimension( 260, 40 );
- /* DEFINIÇÃO DAS BORDAS */
- private Border
- buttonHoverBorder = BorderFactory.createLineBorder(new Color(255, 255, 255, 255), 1, false),
- buttonDefaulBorder = BorderFactory.createLineBorder(new Color(240, 240, 240, 100), 1, false),
- textFieldHoverBorder = BorderFactory.createCompoundBorder(BorderFactory.createLineBorder(new Color(150, 150, 150), 1, false), BorderFactory.createEmptyBorder(1, 10, 1, 10)),
- textFieldDefaultBorder = BorderFactory.createCompoundBorder(BorderFactory.createLineBorder(Color.LIGHT_GRAY, 1, false), BorderFactory.createEmptyBorder(1, 10, 1, 10));
- /* DEFINIÇÃO DAS CORES */
- private Color textFieldForegroundColor = new Color(150, 150, 150),
- textFieldForegroundFocusColor = new Color(150, 150, 150),
- buttonForegroundColor = new Color (255,255,255);
- /* DEFINIÇÃO DA FONTE */
- private Font defaultFont = new Font ("Tahoma", Font.PLAIN, 16);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement