package arquivodecodigos; import java.awt.*; import javax.swing.*; import javax.swing.event.*; import java.util.*; public class Estudos extends JFrame implements ListSelectionListener{ JLabel label = new JLabel("Observe este texto"); public Estudos(){ super("Visualizados de Fontes"); String[] fontNames; // nomes das fontes Toolkit toolkit = Toolkit.getDefaultToolkit(); fontNames = GraphicsEnvironment.getLocalGraphicsEnvironment(). getAvailableFontFamilyNames(); Vector fonts = new Vector(); for(int i = 0; i < fontNames.length; i++){ fonts.add(new Font(fontNames[i], Font.PLAIN, 16)); } JList fontList = new JList(fonts); fontList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); fontList.setCellRenderer(new FontCellRenderer()); JScrollPane scrollPane = new JScrollPane(fontList); JPanel p = new JPanel(); p.add(scrollPane); fontList.addListSelectionListener(this); getContentPane().add(p, "Center"); getContentPane().add(label, "South"); setSize(500, 250); setVisible(true); } @Override public void valueChanged(ListSelectionEvent evt){ JList source = (JList) evt.getSource(); Font font = (Font) source.getSelectedValue(); label.setFont(font); } public static void main(String args[]){ Estudos app = new Estudos(); app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } } // Classe personalizada que implementa ListCellRenderer class FontCellRenderer implements ListCellRenderer{ @Override public Component getListCellRendererComponent( final JList list, final Object value, final int index, final boolean isSelected, final boolean cellHasFocus){ return new JPanel(){ @Override public void paintComponent(Graphics g){ super.paintComponent(g); Font font = (Font) value; String text = font.getFamily(); FontMetrics fm = g.getFontMetrics(font); g.setColor(isSelected ? list.getSelectionBackground() : list.getBackground()); g.fillRect(0, 0, getWidth(), getHeight()); g.setColor(isSelected ? list.getSelectionForeground() : list.getForeground()); g.setFont(font); g.drawString(text, 0, fm.getAscent()); } @Override public Dimension getPreferredSize() { Font font = (Font) value; String text = font.getFamily(); Graphics g = getGraphics(); FontMetrics fm = g.getFontMetrics(font); return new Dimension(fm.stringWidth(text), fm.getHeight()); } }; } } Show Considere a seguinte equação matemática: 5 x 5 = 25 Como os dois números à esquerda do sinal de igual são iguais, dizemos que 25 é o quadrado de 5 e 5 é a raiz quadrada de 25, escritos respectivamente como, 25 = 52 e 5 = Considere outra equação matemática, assim: 4 x 4 = 16 Como os dois números à esquerda do sinal de igual são iguais, dizemos que 16 é o quadrado de 4 e 4 é a raiz quadrada de 16, escritos respectivamente como, 16 = 42 e 4 = O mesmo pode ser dito para 3 e 9 e 6 e 36 e outros pares de números. Em muitos casos, ambos os números são do tipo duplo. Este artigo se concentra em uma raiz quadrada. Este artigo explica como usar Java para encontrar a raiz quadrada de um número, semelhante a como a calculadora produziria a raiz quadrada de um número. SintaxeJava tem um método para retornar a raiz quadrada de um número: é sqrt (). É um membro da aula de matemática. A sintaxe completa é: públicoestáticoDuplo sqrt(Duplo uma) É público. Isso significa que ele pode ser chamado de fora da implementação da classe. É estático. Isso significa que a classe Math não precisa ser instanciada para o método a ser usado. Para usar o método, comece com o nome da classe de matemática, Math, seguido por um ponto e, a seguir, o método. Não se esqueça de colocar no argumento, que é o número cuja raiz quadrada é necessária. O argumento é do tipo duplo e o valor de retorno é do tipo duplo. Isso significa que o tipo de retorno deve ser declarado como double. A classe Math não precisa ser importada pelo programador antes de ser usada. Por que duplo tipo de argumento e duplo tipo de retornoO argumento é do tipo duplo e o valor de retorno é do tipo duplo. Java tem os seguintes tipos numéricos: byte, int, long, float e double. Existem outros tipos de sub-int, que este artigo não abordará. A diferença entre o tipo long e o tipo int é que a variável de tipo long pode conter números maiores do que o limite do tipo int e conter números dentro do intervalo do tipo int. Ambos os números flutuantes e de tipo duplo não são exatos. A diferença entre o float e o double é que o número duplo está mais próximo do número que representa do que o número do float. Raiz quadrada do número internoO programa a seguir gera a raiz quadrada do inteiro, 10:
públicoclasse A classe { Observe que o tipo de retorno é codificado como duplo. O resultado é: As casas decimais são muito longas. Quando não informado, arredonde suas casas decimais para duas casas decimais. O programa a seguir ilustra isso:
públicoclasse A classe { A segunda instrução em main () faz o arredondamento. A saída é 3,16. A saída nem sempre deve ser arredondada por código. Se o inteiro cuja raiz quadrada era exigida fosse 25, o valor de retorno do método sqrt () teria sido 5,0. O programa a seguir ilustra isso:
públicoclasse A classe { A declaração de arredondamento foi omitida. A saída é 5,0. O “.0” está lá porque o valor de retorno é um duplo. Raiz quadrada do número flutuanteEm Java, um número flutuante deve terminar com 'f'. O programa a seguir gera a raiz quadrada do float, 11,22:
públicoclasse A classe { Observe que o tipo de retorno é codificado como duplo. O resultado é: As casas decimais são muito longas. Quando não informado, arredonde suas casas decimais para duas casas decimais. O programa a seguir ilustra isso:
públicoclasse A classe { A segunda instrução em main () faz o arredondamento. A saída é 3,35. A saída nem sempre deve ser arredondada por código. Se o inteiro cuja raiz quadrada era exigida fosse 16,0, o valor de retorno do método sqrt () teria sido 4,0. O programa a seguir ilustra isso:
públicoclasse A classe { A declaração de arredondamento foi omitida. A saída é 4.0. O “.0” está lá porque o valor de retorno é um duplo. Raiz quadrada de número duploO programa a seguir gera a raiz quadrada do duplo, 11,22:
públicoclasse A classe { Observe que o tipo de retorno é codificado como duplo. O resultado é: 3.3496268448888453 As casas decimais também são grandes. Quando não informado, arredonde suas casas decimais para dois dígitos decimais. O seguinte programa, ilustra isto: [cc lang="Java" largura="100%" altura="100%" escapou="verdadeiro" tema="quadro-negro" nowrap="0"] A segunda instrução em main () faz o arredondamento. A saída é 3,35. A saída nem sempre deve ser arredondada por código. Se o inteiro cuja raiz quadrada era exigida fosse 16,0, o valor de retorno do método sqrt () teria sido 4,0. O programa a seguir ilustra isso:
públicoclasse A classe { A declaração de arredondamento foi omitida. A saída é 4.0. O “.0” está lá porque o valor de retorno é um duplo. ConclusãoJava tem o método sqrt () para raiz quadrada. Leva um número como argumento e retorna a raiz quadrada como um tipo duplo. Se o número de casas decimais for alto, o número deve ser arredondado. Como arredondar um número para duas casas decimais foi ilustrado acima. |