вот мой классСтранные JPanel краска
public class Grid extends JPanel{
public Grid(Dimension dim){
this.dim = dim;
step = 0.02;
this.setSize(dim);
this.setLocation(0, 0);
}
@Override
public void paint(Graphics g){
for(int i=-1; i<this.getHeight(); i+=this.getHeight()*step){
g.drawLine(0, i, this.getWidth(), i);
}
for(int i=-1; i<this.getWidth(); i+=this.getWidth()*step){
g.drawLine(i, 0, i, this.getHeight());
}
}
}
(я пропустил определение переменных класса)
добавить этот класс в другой JPanel как этот
Grid grid = new Grid(dim);
parentPanel.add(grid);
По умолчанию, сетка скрыта (grid.hide();
), поэтому мой jFrame выглядит примерно так:
где «синяя» область - это родительская панель, а «оранжевая» область - JPanel с кнопками. Проблема в том, что когда я нажимаю кнопку сетки, я получаю следующий результат:
где линии сетки в порядке, но я также получаю этот оранжевый ящик, который я не знаю, почему.
Любые идеи?
, что эти кнопки в верхней? вы уверены, что не добавили кнопку на панель? Я думаю, вы указали слишком мало кода, чтобы помочь. – mxb
они случайные кнопки моей программы, да я не добавлял ни одной кнопки на панель (забыл упомянуть, что я могу добавить и другие JPanels, которые могут быть перемещены с помощью мыши над панелью. Если я переведу одну из них поверх странный оранжевый ящик, он исчезает, как будто он стирается) –
возможно, требуется вызвать 'super.paint()' в 'public void paint (Graphics g);'? – mxb