클릭하고 드래그하여 JTextArea를 이동하려고합니다. 나는 기본적인 개념을 가지고있다. 그러나 웬일인지, 내가 그것을 끌 때, 내가 끌고가는 길을 따라 나타나고있다.JPanel 주위에서 JTextArea 이동하기
내가 마우스 드래그에 새로운 JTextArea에를 생성하고 있지 않다 때문에 어떤 문제가 있는지 모르겠지만, 내가 사용하고 : component.setLocation(x, y);
왜 그것은 당신을 보여줌으로써 설명하는 가장 쉬운 방법입니다 이 일이 일어 났습니까?
import java.awt.Color;
import java.awt.Component;
import java.awt.Graphics;
import java.awt.Point;
import java.awt.event.MouseEvent;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextArea;
import javax.swing.event.MouseInputAdapter;
public class Editor {
public static void main(String[] args) {
JFrame frame = new Window();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setBounds(30, 30, 1000, 700);
frame.getContentPane().setBackground(Color.white);
frame.setVisible(true);
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}
}
class Window extends JFrame {
MyPanel myPanel = new MyPanel();
private static final long serialVersionUID = 1L;
public Window() {
addMenus();
}
public void addMenus() {
getContentPane().add(myPanel);
setSize(300, 200);
setLocationRelativeTo(null);
setDefaultCloseOperation(EXIT_ON_CLOSE);
}
}
class MyPanel extends JPanel {
private static final long serialVersionUID = 1L;
public MyPanel() {
JTextArea textArea = new JTextArea("Some text\nSome other text");
textArea.setLineWrap(true);
textArea.setWrapStyleWord(true);
add(textArea);
DragListener drag = new DragListener();
textArea.addMouseListener(drag);
textArea.addMouseMotionListener(drag);
}
@Override
protected void paintComponent(Graphics g) {
}
public class DragListener extends MouseInputAdapter {
Point location;
MouseEvent pressed;
public void mousePressed(MouseEvent me) {
pressed = me;
}
public void mouseDragged(MouseEvent me) {
Component component = me.getComponent();
location = component.getLocation(location);
int x = location.x - pressed.getX() + me.getX();
int y = location.y - pressed.getY() + me.getY();
component.setLocation(x, y);
}
}
}
아, 사실 이걸 알았어! 나는 페인팅을하고 있지만 예제를 더 간단하게 만들기 위해 페인팅 코드를 제거했지만 paintComponent의 오버 라이드를 제거하는 것을 잊어 버렸다. 고마워요! – nick
이러한 JTextArea를 동적으로 추가하는 데 문제가 있습니다. 기회가 있으면이 질문을 확인하십시오. http://stackoverflow.com/questions/26705798/dynamically-adding-a-jtextarea-to-jpanel-not-working 감사합니다. – nick