从JOptionPane向面板添加字符串

时间:2012-07-19 00:54:03

标签: java swing jframe joptionpane

我正在开发一个允许用户输入消息的程序。当用户按下位于我的框架中的“消息”菜单项时,会弹出一个JOptionPane输入对话框,提示他们输入一个字符串。问题是我现在必须获取该字符串并将其粘贴到我的面板类中。此外,我还允许用户在按下同样位于我的框架中的另一个菜单项时从另一个对话框中选择形状和颜色。字符串必须位于我绘制的形状之上。我试过了 绘制字符串,但它无法正常运行。这是我的代码无效。 当我在JOptionPane上点击OK时,我只想在我的面板上绘制字符串。我该怎么做?

在我的框架中

private void messageItemActionPerformed(java.awt.event.ActionEvent evt) {
    // TODO add your handling code here:

    String message = JOptionPane.showInputDialog("Enter your string");

    // my panel
    drawP.setMessage(message);

}

在我的小组中

public void setMessage(String s) {
    message = s;
}

@Override
public void paintComponent(Graphics g) {
    super.paintComponent(g);

    // the user can select two different shapes this is
    // a boolean
    if (shape == true) {
        g.setColor(shapeColor);
        g.fillRect(x, y, 40, 40);
        g.drawString(message, x, y);

    } else {
        g.setColor(shapeColor);
        g.fillOval(x, y, 40, 40);
        g.drawString(message, x, y);
    }
}

1 个答案:

答案 0 :(得分:1)

设置好消息后,您是否打电话给repaint()?我之前尝试过,重新绘制JFrame似乎不起作用,但重绘JPanel的工作原理。