** Когда я пытаюсь изменить местоположение любого компонента, такого как Button
Label
TextField
некоторая часть моих фигур становится невидимой. Когда я удалю код, в котором я установил местоположение для компонента (в этом случае это TextField
) формы становятся нормальными. **формы становятся невидимыми после изменения местоположения компонентов
public class Line {
public static void main(String[] args) {
JFrame frame = new JFrame("JFrame Example");
frame.setSize(1366, 768);
frame.setLocationRelativeTo(null);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLayout(null);
frame.setVisible(true);
JButton button=new JButton("Show lines");
frame.add(button);
button.setBounds(60, 400, 220, 30);
button.setVisible(true);
JTextField txtf=new JTextField();
frame.add(txtf);
txtf.setVisible(true);
txtf.setSize(50, 100);
button.addMouseListener(new MouseListener() {
@Override
public void mouseClicked(MouseEvent me) {
button.setVisible(false);
Graphics2D grf= (Graphics2D) frame.getGraphics();
txtf.setVisible(false);
txtf.setText("APPLE");
txtf.setLocation(600, 600);
txtf.setVisible(true);
grf.fillOval(600, 600, 10, 10);
grf.fillOval(190, 600, 10, 10);
grf.fillOval(900, 650, 10, 10);
grf.fillOval(750, 160, 10, 10);
grf.fillOval(600, 400, 10, 10);
grf.fillOval(1139, 266, 10, 10);
grf.drawLine(1144, 271, 605, 405);
grf.drawLine(195, 605, 605, 405);
grf.drawLine(755, 165, 605, 405);
grf.drawLine(755, 165, 1144, 271);
grf.drawLine(905, 655, 1144, 271);
grf.drawLine(905, 655, 605, 405);
grf.drawLine(205, 205, 605, 405);
grf.drawLine(205, 205, 755, 165);
}
@Override
public void mousePressed(MouseEvent me) {
}
@Override
public void mouseReleased(MouseEvent me) {
}
@Override
public void mouseEntered(MouseEvent me) {
}
@Override
public void mouseExited(MouseEvent me) {
}
});
button.setVisible(true);
}
}
1) Java GUI должны работать с различными ОС, размером экрана, разрешением экрана и т. Д., Используя разные PLAF в разных локалях. Таким образом, они не способствуют идеальной компоновке пикселей. Вместо этого используйте диспетчеры макетов или [их комбинации] (http://stackoverflow.com/a/5630271/418556), а также макет и границы для [пробела] (http://stackoverflow.com/a/17874718/ 418556). 2) Пожалуйста, используйте форматирование кода для фрагментов кода и кода, структурированных документов, таких как HTML/XML или ввода/вывода. Для этого выберите текст и нажмите кнопку '{}' в верхней части формы публикации/редактирования сообщения. –
3) Чтобы лучше помочь, отправьте сообщение [MCVE] или [Short, Self Contained, Correct Example] (http://www.sscce.org/). –