【发布时间】:2015-08-28 11:58:35
【问题描述】:
我想在我的 jLayeredPane 中画线 这是我的 netbeans 项目。
https://drive.google.com/file/d/0B6e6jjVl5-sCMkJFcEI3MkZEZ1E/view
我点击按钮时遇到问题,为什么我不能在我的 jlayeredpane 中画线??这段代码哪里错了?
单击按钮绘制时,我想在我的 jlayeredpane 中画一些线。我尝试添加 jlayerpane1。添加一些组件。我将其设置为可见。
如何解决?
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
jLayeredPane1.add(new JComponent(){
ArrayList<Shape> linesList = new ArrayList<Shape>();
private Shape line = null;
{
MouseAdapter mouseAdapter = new MouseAdapter(){
@Override
public void mousePressed (MouseEvent e){
line = new Line2D.Double(e.getPoint(), e.getPoint());
linesList.add(line);
repaint();
}
@Override
public void mouseDragged(MouseEvent e){
Line2D shape =(Line2D)line;
shape.setLine(shape.getP1(), e.getPoint());
repaint();
}
@Override
public void mouseReleased(MouseEvent e){
line = null;
repaint();
}
};
addMouseListener(mouseAdapter);
addMouseMotionListener(mouseAdapter);
}
@Override
protected void paintComponent(Graphics g){
Graphics2D g2d = (Graphics2D) g;
g2d.setPaint(Color.BLUE);
g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
for(Shape content : linesList){
g2d.draw(content);
}
}
});
jLayeredPane1.setVisible(true); // set for visible
}
【问题讨论】:
-
如果您需要更多帮助,请发布适当的 SSCCE 来说明问题,因为我们不知道您如何创建框架、分层窗格和自定义绘画面板的上下文,所以我们不能判断代码是否正确,因为我们不是读心者。
-
thx @camickr 我正在使用 Netbean IDE 我只是调用那个按钮。并添加 jlayeredpane1...我已将我的分辨率程序设置为 1024x768
-
不明白你上一条评论的意义。你已经得到了答案。如果答案没有帮助,请发布
SSCCE。评论没有帮助。 -
i've been share my source code- 在论坛上发布代码,而不是在谷歌驱动器上。
标签: java drag-and-drop line graphics2d jlayeredpane