誰かが私にこれを助けてくれますか?私はJavaでプログラムを学習し、そのプログラムの1つをコピーしました。 「Hello Java!」テキストをクリックして画面にドラッグすることはできません。私はプログラムを含めましたが、どこが間違っているのか、私が迷っているのか分かりません。 私は投稿を見ました: "MouseDragged & MouseMovedはJavaアプレットでは動作しませんでしたが、それらのメソッドはすべて私のプログラムにあります。MouseDraggedは動作していません
//file: HelloJava3.java
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class HelloJava3 {
public static void main(String[] args) {
JFrame frame = new JFrame("HelloJava3");
frame.add(new HelloComponent3("Hello, Java!"));
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(300, 300);
frame.setVisible(true);
}
}
class HelloComponent3 extends JComponent
implements ActionListener, MouseMotionListener
{
String theMessage;
int messageX = 125, messageY = 95; //Coordinates of the message
JButton theButton;
int colorIndex; //Current index into someColors
static Color[] someColors = {
Color.black, Color.red, Color.green, Color.blue, Color.magenta
};
public HelloComponent3(String message) {
theMessage = message;
theButton = new JButton("Change Color");
setLayout(new FlowLayout());
add(theButton);
theButton.addActionListener(this);
addMouseMotionListener(this);
}
public void paintComponent(Graphics g) {
g.drawString(theMessage, messageX, messageY);
}
public void mouseDgragged(MouseEvent e) {
messageX = e.getX();
messageY = e.getY();
repaint();
}
public void mouseMoved(MouseEvent e) {}
public void actionPerformed(ActionEvent e) {
// Did somebody push out button?
if (e.getSource() == theButton)
changeColor();
}
synchronized private void changeColor() {
//Change the index to the next colour, awkwardly.
if (++colorIndex == someColors.length)
colorIndex = 0;
setForeground(currentColor()); // Use the new colour.
repaint();
}
synchronized private Color currentColor() {
return someColors[colorIndex];
}
@Override
public void mouseDragged(MouseEvent arg0) {
// TODO Auto-generated method stub
}
}
よりもむしろコードをコピーし、これはさらにあなたを取得するような概念を学びます。質問を投稿する前に、関連するチュートリアルを検索して勉強してください(多くの場合、マウスリスナーとマウス動作リスナーをSwingで使用する方法を含む)。 –
あなたはあなたがそれらを解決することから多くを学ぶことができる道に沿って行うコードとすべての間違いをコッピングすることによって。チュートリアルは素晴らしかったですが、デバッグが可能であることは確かです。投稿する前に回答を検索しました。 – Kalmiany