2016-08-31 8 views
-1

EDIT: Спасибо всем, вы действительно помогли мне здесь. Последнее, что мне нужно было сделать, это сделать панель пустым, поэтому JButtons может двигаться. Спасибо!PaintComponent не работает с JButtons - FIXED

Мой контент paintComponents не отображается на экране моих программ, и я думаю, что, возможно, что-то не так с макетами, но я не могу понять, почему мой drawString «Калькулятор» не появляется. Вот мой код (я запускаю окно из другого класса под названием Launcher):

package uusi.projekti.juttu; 

import java.awt.FlowLayout; 
import java.awt.Font; 
import java.awt.Graphics; 

import javax.swing.JButton; 
import javax.swing.JFrame; 
import javax.swing.JPanel; 

public class Window implements Runnable{ 

    public Window() { 

     JButton button = new JButton("="); 
     button.setBounds(530, 510, 50, 50); 
     button.setLayout(null); 
     button.setVisible(true); 

     JPanel panel = new JPanel(); 

     JFrame frame = new JFrame("Title"); 

    // frame.setLayout(new FlowLayout()); 
     frame.setVisible(true); 
     frame.setSize(600, 600); 
     frame.setResizable(false); 
     frame.setLocationRelativeTo(null); 
     frame.add(new drawPanel()); 
     frame.add(panel); 

     panel.setLayout(null); 
     panel.add(button); 
     panel.add(new drawPanel()); 
    } 

    public class drawPanel extends JPanel { 
     public void paintComponent(Graphics g) { 
      Font font = new Font("Arial", 60, 60); 
      g.setFont(font); 
      g.drawString("Calculator", 100, 100); 
     } 
    } 

    public void run() { 
    } 
} 

А вот Launcher.java

package uusi.projekti.juttu; 

public class Launcher { 

    public static void main(String[] args) { 
     new Window(); 
    } 
} 
+0

Где мой главный метод? – brso05

+0

Отредактировано оригинальное сообщение, потому что код не был отформатирован в комментариях – user1766089

ответ

0

Попробуйте что-то вроде этого:

общественного класса Window реализует Runnable {

public Window() { 

    JButton button = new JButton("="); 
    button.setBounds(530, 510, 50, 50); 
    button.setLayout(null); 
    button.setVisible(true); 

    JPanel panel = new drawPanel(); 

    JFrame frame = new JFrame("Title"); 

// frame.setLayout(new FlowLayout()); 
    frame.setVisible(true); 
    frame.setSize(600, 600); 
    frame.setResizable(false); 
    frame.setLocationRelativeTo(null); 
    frame.add(panel); 

    panel.add(button); 
} 
+0

Теперь отображается строка калькулятора и кнопка, но я не могу изменить местоположение кнопки? Нужно ли мне использовать другой тип кода для изменения местоположения кнопки или другого макета? – user1766089

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

  • Нет связанных вопросов^_^