#java
#java
Вопрос:
Хорошо, итак, я пытаюсь создать программу, в которой пользователь выбирает форму, цвет, а затем размер, но она отображается только тогда, когда пользователь нажимает «Нарисовать фигуру». Вот код, я думаю, что основная проблема заключается в том, чтобы выяснить, как вызвать метод рисования. Я попытался использовать метод get selected item, но на выходе вообще ничего не появляется.
package com.java24hours;
import java.awt.*;
import java.awt.event.*;
import java.awt.geom.Ellipse2D;
import javax.swing.*;
public class shape1Student implements ActionListener
{
int choice;
int myColor;
int myShape;
int mySize;
JButton drawShape = new JButton("DrawShape");
JComboBox shape = new JComboBox();
JComboBox color = new JComboBox();
JComboBox size = new JComboBox();
Drawing draw = new Drawing();
Color gold = new Color(159, 121, 44);
public shape1Student()
{
JFrame frame = new JFrame("DS Draw Shapes");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel panel = new JPanel();
panel.add(drawShape);
panel.add(shape);
drawShape.setFont(new Font("Book Antiqua",Font.BOLD|Font.ITALIC, 16));
shape.addItem("Square");
shape.addItem("Rectangle");
shape.addItem("Circle");
shape.addItem("Ellipse");
panel.add(color);
color.addItem("Red");
color.addItem("Blue");
color.addItem("Custom");
panel.add(size);
size.addItem("Small");
size.addItem("Medium");
size.addItem("Large");
drawShape.addActionListener(this);
frame.add(panel, "North");
frame.add(draw);
frame.setSize(500,500);
frame.setVisible(true);
}
public void actionPerformed(ActionEvent e) {
if (e.getSource() == drawShape)
{
choice = 1;
//get color, shape and size vales from combo what DRAW is clicked,
//call draw
color.getSelectedIndex();
shape.getSelectedIndex();
size.getSelectedIndex();
draw.repaint();
}
}
class Drawing extends JComponent
{
public void paint(Graphics g2)
{
Graphics2D g = (Graphics2D) g2;
int[] sizes = {20, 20, 100, 100};
if (choice == 1) //DRAW!
{
// set COLOR, SIZE, then fill with shape LAST
//Set color based on combo box selection
if (myColor == 1) {//Red was selected
g.setColor(Color.red);
} else if (myColor == 2) {//Custom was selected
g.setColor(gold);
} else if (myColor == 3) {//Blue was selected
g.setColor(Color.blue);
}
if (mySize == 1){
g.scale(0.5, 0.5);
} else if (mySize == 2) {
g.scale(1, 1);
} else if (mySize == 3) {
g.scale(2, 2);
}
if (myShape == 1)
{
g.fillRect(sizes[0], sizes[1], sizes[2], sizes[3]);
}
if (myShape == 2)
{
g.fillRect(sizes[0], sizes[2], sizes[1], sizes[3]);
}
if (myShape == 3)
{
Ellipse2D.Float myEllipse = new Ellipse2D.Float(sizes[0], sizes[1], sizes[2], sizes[3]);
g.fill(myEllipse);
g.draw(myEllipse);
}
if (myShape == 4)
{
Ellipse2D.Float myEllipse = new Ellipse2D.Float(sizes[0], sizes[1], sizes[2] 50,
sizes[3]);
g.fill(myEllipse);
g.draw(myEllipse);
}
}
}
}
public static void main(String[] args)
{
new shape1Student();
}
}
Комментарии:
1. Я рекомендую вам прекратить попытки изучить Java за один день. Найдите время, чтобы правильно изучить Java. Учебное пособие Oracle » Создание графического интерфейса пользователя с помощью JFC / Swing » проведет вас шаг за шагом через процесс создания графического интерфейса пользователя. Пропустите раздел Netbeans.
2. Спасибо за совет, я должен был прочитать его для курса колледжа.