Я пытаюсь добавить небольшой рисунок торнадо (перевернутая пирамида) в свой фрейм. Я могу получить торнадо, добавив его к кадру в методе main, но когда я это сделаю, все, что я вижу, это рисунок торнадо, а не графический интерфейс под ним.
Итак, я сейчас пытаюсь добавить рисунок Tornado во фрейм при его создании в методе createComponents, но теперь он вообще не отображается. Вместо всего этого я вижу графический интерфейс в кадре.
Я, вероятно, упускаю что-то легкое, но не могу понять это. Я не уверен, что мне нужно для того, чтобы появился графический интерфейс и изображение торнадо.
public class EFScaleViewer {
public static void main(String[] args) {
// TODO Auto-generated method stub
TornadoFrame frame = new TornadoFrame();
frame.setTitle("EF Scale");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
}
Здесь я создаю кадр и пытаюсь добавить торнадо:
public class TornadoFrame extends JFrame{
private JButton submit;
private JLabel label;
static JLabel errorLabel;
static JTextField textBox;
JPanel tornado = new TornadoComponent();
private static final int FRAME_WIDTH = 400;
private static final int FRAME_HEIGHT = 300;
//Constructor for the frame
public TornadoFrame() {
super();
setSize(FRAME_WIDTH, FRAME_HEIGHT);
createComponents();
}
private void createComponents()
{
textBox = new JTextField(" ");
submit = new JButton("Submit");
label = new JLabel("Please enter a windspeed:");
errorLabel = new JLabel("Error Message " );
JPanel panel = new JPanel();
panel.add(label);
panel.add(textBox);
panel.add(submit);
panel.add(errorLabel);
panel.add(tornado);
add(panel);
}
}
Я знаю, что это работает, но я могу что-то упустить, поэтому вот где я создаю торнадо:
public class TornadoComponent extends JPanel {
public void paintComponent(Graphics g) {
int[] xPoints = {100,200,0};
int[] yPoints = {0,200,200};
int nPoints = 3;
g.drawPolygon(xPoints, yPoints, nPoints);
}
}