我编译的程序运行时没有错误,但是当我在画布内单击时,没有生成/绘制形状。 compiled program PaintComponent类
objectType
指针侦听器类。
private class CanvasPanel extends JPanel {
//this method draws all shapes
public void paintComponent(Graphics page)
{
super.paintComponent(page);
setBackground(Color.WHITE);
for (int i = 0; i < shapeList.size(); i++) {
((Shape) shapeList.get(i)).draw(page);
}
}
}
抽象形体类
public class PointListener implements MouseListener
{
public void mousePressed (MouseEvent event)
{
Point pt = event.getPoint();
//pointList.add(event.getPoint());
if (currentShape.equals("circle")) {
nShape = new Circle((int)pt.getX(), (int)pt.getY(), currentSize, currentSize, currentColor);
shapeList.add(nShape);
} else {
nShape = new Square((int)pt.getX(), (int)pt.getY(), currentSize, currentSize, currentColor);
shapeList.add(nShape);
}
repaint();
}
理想情况下,用户使用所选选项单击画布,单击会生成形状对象并存储在列表中。 paint组件遍历整个列表并调用shape类draw方法,该方法从我的Square / Circle子类中提取并绘制其选定的形状。不幸的是什么也没发生。缺少什么? 谢谢!
这是一个包含我所有项目的回购。 https://github.com/Purpleshoes/assignment7
答案 0 :(得分:0)
我查看了您的myReader = cmdDataBase.ExecuteReader();
while (myReader.Read())
{
}
课程并找到了以下问题
using(SqlConnection connection = new SqlConnection(_connectionString))
{
String query = "INSERT INTO Products (Barcodes, Name, EDate, Quantity, Price) VALUES (@Barcodes, @Name, @EDate, @Quantity,@Price)";
using(SqlCommand command = new SqlCommand(query, connection))
{
SqlCommand command = new SqlCommand(query, db.Connection);
command.Parameters.AddWithValue("@Barcodes", this.tbxBar.Text )
command.Parameters.AddWithValue("@Name", this.tbxName.Text )
command.Parameters.AddWithValue("@EDate",this.dateDate.Value.Date)
command.Parameters.AddWithValue("@Quantity",this.tbxQua.Text)
command.Parameters.AddWithValue("@Price",this.tbxPrice.Text)
int result = command.ExecuteNonQuery();
// Check Error
if(result < 0)
// data insert error
}
}
类并且从未使用过它,它应该像 ip name
0 10.1.1.1 aa
1 10.1.1.2 bb
一样使用您创建了ip name
10.1.1.1 aa
10.1.1.2 bb
类并且从未使用过它,它应该像这样使用WholePanel
您使用了本地ComboListener
个实例而不是类级comboShapes.addActionListener(new ComboListener());
个实例,因此PointListener
类中的canvas.addMouseListener(new PointListener());
方法将永远无效
JComboBox
类中的JComboBox
方法,没有任何意义,所以你需要重新做逻辑因此我对actionPerformed()
课程做了一些修改,见下文
ComboListener