JTabbedPanel и краски

1

У меня небольшая проблема. В основном у меня есть такая вещь:

    JTabbedPane tabsPane = new JTabbedPane();
    add(tabsPane,BorderLayout.CENTER);
    JPanel tab1Panel = new JPanel();
    JPanel tab2Panel = new JPanel();

    //DrawingWindow drawingWindow= new DrawingWindow();
    //add(drawingWindow);


    tabsPane.addTab("Animacja", tab1Panel); 
    tabsPane.addTab("Wykresy", tab2Panel);
    JButton test = new JButton("Press");
    tab2Panel.add(test);

Класс окна чертежа

public class DrawingWindow extends JPanel {

/**
 * 
 */
private static final long serialVersionUID = 1L;
public static Balls balls=new Balls();

public DrawingWindow() {

    MakeBall();
}




private void MakeBall()
{    
        balls=new Balls(10,205,5,10);


}

public void paint(Graphics gg){
    super.paint(gg);

    Graphics2D g = (Graphics2D) gg;    
    g.setColor(Color.GRAY);
    g.fillRect(0,70,515,410);
    g.setColor(Color.WHITE);
    g.drawLine(10, 285, 57, 265);
    g.drawLine(10, 285, 57, 305);

    g.drawLine(515, 285, 458, 265);
    g.drawLine(515, 285, 458, 305);
    for(int ii=0;ii<Parameters.numberOfCovers;ii++)
    {
        if(Parameters.whatCovers[ii]==0)
        {
            g.setColor(Color.YELLOW);
            g.fillRect(132+(57*2*ii), 205, 29+2*Parameters.cmCovers[ii], 150 );
        }
        if(Parameters.whatCovers[ii]==1)
        {
            g.setColor(Color.GREEN);
            g.fillRect(132+(57*2*ii), 205, 29+2*Parameters.cmCovers[ii], 150 );
        }
    //    Ellipse2D.Double shape = new Ellipse2D.Double(balls.getX(), balls.getY(), balls.getVelocity(),balls.getRadius());
    //    g.fill(shape);
        repaint();
    } 
}
public void funkcja()
{
    repaint();
}
}

И мой вопрос - после раскола//в главном моем JTabbedPanel исчезает. Я хочу рисовать в JTab.

http://forum.4programmers.net/Java/232952-jtabbedpanel_i_paint?mode=download&id=6326 <- Пока он прокомментирован

http://forum.4programmers.net/Java/232952-jtabbedpanel_i_paint?mode=download&id=6327 <- После расторжения.

Iam любопытный новичок на Java, поэтому я хотел бы получить ответы: P.

  • 1
    Вам не нужно переопределять paint , вы должны использовать paintComponent . Не вызывайте repaint прямо или косвенно из любого метода paint , это приведет к тому, что будет запланирован бесконечный цикл событий рисования, который в конечном итоге потребляет ваш процессор
Теги:
swing
paint
jtabbedpane

1 ответ

1
Лучший ответ

Хей,

замените это

JPanel tab1Panel = new JPanel();

с этим

JPanel tab1Panel = new DrawingWindow();

до сих пор вы добавляете DrawingPanel в другой JPanel, но если вы хотите нарисовать свою вкладку, добавьте создайте JPanel, который вы добавите в JTabbedPane с помощью addTab().

  • 0
    Большое спасибо! : D Боже мой, я так глуп!
  • 0
    @ user3593720 Если ответ поможет вам решить вашу проблему, вы должны принять его, поставив галочку. Смотрите о странице

Ещё вопросы

Сообщество Overcoder
Наверх
Меню