2013-12-24 9 views
2

Я пытаюсь создать JPanel с различными размерами шрифтов, не используя JLabels.Как изменить размер шрифта JPanel

Ниже приведено представление о том, как выглядит код.

public class MyPanel extends JPanel{ 

    public MyPanel(string title){ 
     JFrame frame = new JFrame(title); 
     frame.setExtendedState(Frame.MAXIMIZED_BOTH); 
     frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     frame.pack(); 
     frame.setVisible(true); 
    } 

    public void paintComponent(Graphics graphics){ 
     graphics.drawString("Some Text",100,100); 
     // Should decrease font size 
     graphics.drawString("Some Smaller Text",200,200); 
     // Should increase font size 
     graphics.drawString("Some Bigger Text",300,300); 
    } 
} 
+2

ну вы меняете шрифт компонента, как JLabel, накладываете jLabel на свой фрейм и меняете его шрифт. Есть метод на нем .setFont (..) –

+0

Пожалуйста, проверьте другие сообщения SO до: http://stackoverflow.com/ questions/7434845/setting-the-default-font-of-swing-program-in-java – pogopaule

+1

И вы не должны переопределять метод рисования JPanel. –

ответ

2

Похоже, вы рисуете текст непосредственно на холсте. Чтобы изменить размер шрифта при рисовании с помощью объекта java.awt.Graphics, вам необходимо изменить текущий шрифт.

Например:

public void paint(Graphics g){ 
    Font font = new Font("Verdana", Font.BOLD, 12); 
    g.setFont(font); 
    g.drawString("bla bla",150,10); 
} 

В идеале, вы должны объявить объект шрифта в качестве переменной экземпляра вместо создания нового шрифта каждый раз, когда краска называется.

3

добавить это в недействительной краске метод

float f=20.0f; // font size. 
    g.setFont(g.getFont().deriveFont(f); 
    g.drawString("whatever",150,f+10);// provides optimum gap for printing 

Done() ...

+0

Это действительно помогло мне. Спасибо –

+0

Добавьте его как ответ ур затем –

1

Вы можете вызвать метод setFont() от вас JPanel и дать ему Font в качестве параметра. Пример:

setFont(new java.awt.Font("Century Schoolbook L", 2, 24)); 

Первый аргумент это имя шрифта, второй для стиля и последний для размера.

Смежные вопросы