У меня небольшая проблема. В основном у меня есть такая вещь:
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.
Хей,
замените это
JPanel tab1Panel = new JPanel();
с этим
JPanel tab1Panel = new DrawingWindow();
до сих пор вы добавляете DrawingPanel
в другой JPanel
, но если вы хотите нарисовать свою вкладку, добавьте создайте JPanel, который вы добавите в JTabbedPane
с помощью addTab()
.
paint
, вы должны использоватьpaintComponent
. Не вызывайтеrepaint
прямо или косвенно из любого методаpaint
, это приведет к тому, что будет запланирован бесконечный цикл событий рисования, который в конечном итоге потребляет ваш процессор