2016-04-13 3 views
-1

Я пытаюсь отобразить график после того, как файл был выбран с использованием метода repaint, он не дает мне никаких ошибок, но есть что-то, что я делаю неправильно, что он не отображает график, я новый для метода краски, поэтому я так думаю, почему он не работает.Метод JPanel Paint

Код:

private final JPanel buttonPanel = new JPanel(); 
    private final JTextArea listArea = new JTextArea(); 
    //private final JTextArea graphArea = new JTextArea(); 

Ниже является JPanel я пытаюсь вывода графа на:

private final JPanel graphArea = new JPanel(); 
    private final JButton read = new PosJButton("Read", 0); 
    private final JButton breadth = new PosJButton("Breadth", 0); 
    private final JButton depth = new PosJButton("Depth", 0); 

Мой класс для перекрашивания панели:

private class graphArea extends JPanel { 

     public graphArea() { 
      graphArea.setPreferredSize(new Dimension(255,255)); 
     } 

     @Override 
     public void paintComponent(Graphics g) { 

    } 
    } 

    //method creating a new gui 
    public static void makeAndShowGUI() { 
     graphGUI gGUI = new graphGUI(); 
     gGUI.showGUI(); 
    } 

     //setting items for gui 
yout); 
      listArea.setRows(1); 
); 
      contentPane.add(buttonPanel); 
      contentPane.add(graphArea);  




            newStation.addStation(name, posx, posy); 
            System.out.println("Station test: " + name + " " + posx + " " + posy); 
           } 
           else if(type.equals("Connection:")){ 
            String statA = sc.next(); 
            String statB = sc.next(); 
            double dist = sc.nextDouble(); 



            newStation.addConnection(statA, statB, dist); 
            System.out.println("Connection test: " + statA + " " + statB + " " + dist); 
           } 
          } 

Вот где Я пытаюсь перерисовать график jpanelArea:

graphArea.repaint(); 
         }catch(FileNotFoundException ex){ 
          JOptionPane.showMessageDialog(null, "invalid file format", "Error", JOptionPane.ERROR_MESSAGE); 
         } 


     } 
     } 
    }); 

ответ

0

Прежде всего, имена классов должны начинаться с символа верхнего регистра.

Размер вашего GraphArea (обратите внимание на собственное имя) равен (0, 0), поэтому рисовать нечего.

Чтобы вернуть размер панели, вам необходимо переопределить метод getPreferredSize(). Тогда менеджер макетов может работать правильно.

+0

Как мне это сделать? – codingmachine

+0

@codingmachine, прочитайте раздел из учебника Swing по [Custom Painting] (http://docs.oracle.com/javase/tutorial/uiswing/painting/index.html) для рабочего примера. – camickr

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