Este artigo descreve as funções do painel que podem ser selecionadas e arrastadas e descartadas imagens implementadas pelo Java. Compartilhe -o para sua referência, como segue:
Vi um post no fórum hoje e espero arrastar e soltar fotos como arrastar mapas no balanço. Aqui está a implementação mais simples, fornecendo uma ideia básica.
importar javax.swing. a forma. Como usar: clique duas vezes no espaço em branco no formulário para abrir a caixa de diálogo de imagem. Depois de abrir a imagem, você pode arrastar e soltar a imagem no formulário. * / @Supressorwarnings ("serial") public class DragingFrame estende JFRame { /*** construtor** @Throws HeadlessException? ? ? */ public DragingFrame () lança a cabeça semexception {this.setDefaultCloseoperation (exit_on_close); getContentPane (). Setlayout (new BorderLayout ()); getContentPane (). Add (new ImagePanel (), borderlayout.center); } // Entrada do programa public static void main (string [] args) lança Exceção {uimanager.setLookAndFeel (uimanager.getSystemLelowAndFeelClassName ()); Quadro de frameframe = new DragingFrame (); frame.SetSize (400, 300); quadro.setLocation (300, 300); frame.setResizable (false); frame.setTitle ("www.vevb.com clique duas vezes para abrir a imagem e depois arraste e solte"); frame.setVisible (true); }}/*** Painel que pode arrastar e soltar a imagem*/@supressorwarnings ("serial") classe ImagePanel estende JPanel {private dragStatus status = dragstatus.ready; // arrastar status de imagem privada imagem; // imagem a ser exibida como private ImagePosition = new Point (0, 0), // A posição atual da imagem imagestartPosition = new Point (0, 0), // A posição da imagem no início de cada arrasto (ou seja, a posição após o último arrasto) MousestartPosition; // The position of the mouse at the start of each drag ImagePanel() { addMouseListener(new MouseListener() { // Open the image when double-clicking the mouse public void mouseClicked(MouseEvent e) { if (e.getClickCount() == 2) { openImage(); } } // When the mouse is pressed, the status is changed and the drag start position is gravado. DragStatus.Dragging) {status = dragStatus.ready; addMousEmotionListener (novo mouseMotionListener () {// java tem um evento de arrastar e soltar, mova a posição da imagem neste evento public void mousedragged (mouseevent e) {if (status == dragstatus.dragging) {moveImage (E.EtPoint ();}}} VOID MUMM MUMM MOUS } /*** Mova a imagem. De fato, o trabalho de desenho é feito no PaintComponent (), onde apenas calcula a posição da imagem e depois chama o método. * * @Param Point Posição do mouse atual */ private void MoveImage (ponto Ponto) {// A posição atual da figura é igual à posição inicial da figura mais o deslocamento da posição do mouse. ImagePosition.SetLocation (ImageStartPosition.getx () + (Point.getx () - mousestartPosition.getx ()), imagestartPosition.gety () + (Point.gety () - mousestartPposition.gety ())); repintar (); } // Abra a imagem private void OpenImage () {System.out.println ("Imagem de abertura ..."); Arquivo de arquivo = createfileChooser (). GetSelectedFile (); if (arquivo! if (imagem! = null) {this.Repaint (); }}} // Crie uma caixa de diálogo de arquivo aberto private jfileChooser createfilechooser () {jfileChooser chooser = new jfileChooser (); chooser.setDialogtitle ("Selecione o arquivo de imagem ..."); chooser.addchoosableFilter (novo FileNameExtensionFilter ("Formato de imagem comum", "jpg", "jpeg", "gif", "png")); chooser.showPendialog (this); Retornar Chooser; } @Override Protected Void PaintComponent (gráficos g) {super.paintcomponent (g); if (imagem! = null) {g.drawimage (imagem, (int) imagePosition.getx (), (int) imagePosition.gety (), this); }} private enum dragstatus {pronto, arrastando}}Efeito de corrida:
Para obter mais informações sobre os algoritmos Java, os leitores interessados neste site podem visualizar os tópicos: "Estrutura de dados Java e tutorial de algoritmo", "Resumo das dicas de nó da operação Java Dom", "Resumo de dicas de operação de Java e Operação de Java" e "Resumo de Java cache" Tips "TIPS"
Espero que este artigo seja útil para a programação Java de todos.