Artikel ini membagikan kode spesifik untuk ayunan untuk mengimplementasikan seret dan peregangan formulir untuk referensi Anda. Konten spesifiknya adalah sebagai berikut
Saat menggunakan setundecorated (true) untuk menghapus judul bilah dengan jFrame, Anda harus menulis fungsi seret dan tarik sendiri.
Di bawah ini adalah rendering. Perangkat lunak tangkapan layar saya tidak dapat menangkap kursor kecuali kursor default sistem, sehingga perubahan kursor di setiap arah tidak tercermin dalam gambar.
Kodenya adalah sebagai berikut:
impor javax.swing.*; impor java.awt.*; / *** Bentuk drag dan peregangan*/ kelas publik winResizedemo {private jframe jf; public winResizedemo () {jf = new jframe (); jf.setundecorated (true); // demark batas dan judul bar jf.setlocationRelativeto (null); // atur jendela jf.setsize (400.400); jf.setDefaultCloseOperation (jframe.exit_on_close); Penyisihan DG = UNDANG NEW REVENEVENT (JF); / ** Tambahkan dua pendengar **/ jf.addmouseListener (DG); JF.AddMouseMotionListener (DG); jf.setVisible (true); } public static void main (string [] args) {winResizedemo baru (); }} impor javax.swing.*; impor java.awt.*; impor java.awt.event.mouseadapter; impor java.awt.event.mouseevent; /*** Menerapkan peregangan dan menyeret ke segala arah jendela. */ PROBLACE REVIECEEVENT EXTENDS MOUSEADAPTER {PUBLIK JFRAME JF; Private Point Prepos, Curpos, JFPOS; Luas Ganda Terakhir Statis Pribadi = 15.0; // Border Stretch Range Int DragType Private; private static final int drag_move = 1; private static final int drag_up = 2; private static final int drag_upleft = 3; private static final int drag_upright = 4; private static final int drag_left = 5; private static final int drag_right = 6; private static final int drag_bottom = 7; private static final int drag_bottomleft = 8; private static final int drag_bottomright = 9; PRIBUK PUBLIKEVENT (JFRAME JF) {this.jf = jf; } @Override public void mousepressed (mouseEvent e) {prepos = e.getLocationONScreen (); } @Override public void mousemoved (mouseEvent e) {areacheck (e.getPoint ()); } @Override public void mouseDragged (mouseEvent e) {curpos = e.getLocationONScreen (); jfpos = jf.getLocation (); dragaction (); prepos = curpos; } private void dragaction () {switch (dragType) {case drag_move: jf.setlocation (jfpos.x+curpos.x-prepos.x, jfpos.y+curpos.y-prepos.y); merusak; case drag_up: // x Posisi tetap tidak berubah, perubahan posisi y, dan perubahan tinggi jf.setlocation (jfpos.x, jfpos.y+curpos.y-prepos.y); jf.setsize (jf.getwidth (), jf.getheight ()-(curpos.y-prepos.y)); merusak; case drag_left: // posisi y tetap tidak berubah, perubahan posisi, perubahan lebar jf.setlocation (jfpos.x+curpos.x-prepos.x, jfpos.y); jf.setsize (jf.getWidth ()-(curpos.x-prepos.x), jf.getheight ()); merusak; case drag_right: // x, posisi y tetap tidak berubah, perubahan lebar jf.setlocation (jfpos.x, jfpos.y); jf.setsize (jf.getWidth ()+(curpos.x-prepos.x), jf.getHeight ()); merusak; case drag_bottom: // x, posisi y tetap tidak berubah, perubahan tinggi jf.setlocation (jfpos.x, jfpos.y); jf.setsize (jf.getwidth (), jf.getheight ()+(curpos.y-prepos.y)); merusak; case drag_upleft: // x, y perubahan posisi, h dan w semuanya berubah jf.setlocation (jfpos.x+curpos.x-prepos.x, jfpos.y+curpos.y-prepos.y); jf.setsize (jf.getWidth ()-(curpos.x-prepos.x), jf.getheight ()-(curpos.y-prepos.y)); merusak; case drag_bottomright: // x, y Posisi tetap tidak berubah, h dan w semuanya berubah jf.setlocation (jfpos.x, jfpos.y); jf.setsize (jf.getWidth ()+(curpos.x-prepos.x), jf.getHeight ()+(curpos.y-prepos.y)); merusak; case drag_upright: // x Posisi tetap tidak berubah, y, w, h mengubah jf.setlocation (jfpos.x, jfpos.y+curpos.y-prepos.y); jf.setsize (jf.getWidth ()+(curpos.x-prepos.x), jf.getHeight ()-(curpos.y-prepos.y)); merusak; case drag_bottomleft: // y tetap tidak berubah, XWH mengubah jf.setlocation (jfpos.x+curpos.x-prepos.x, jfpos.y); jf.setsize (jf.getWidth ()-(curpos.x-prepos.x), jf.getHeight ()+(curpos.y-prepos.y)); merusak; default: break; }} private boolean areacheck (titik p) {if (p.getx () <= lebarnya && p.gety () <= lebarnya) {dragType = drag_upleft; jf.setCursor (kursor baru (cursor.nw_resize_cursor)); } else if (p.getX ()> lebarnya && p.getX () <(jf.getWidth ()-lebarnya) && p.gety () <= lebarnya) {dragType = drag_up; jf.setCursor (kursor baru (cursor.n_resize_cursor)); } else if (p.getx ()> = (jf.getWidth ()-lebarnya) && p.gety () <= lebarnya) {dragType = drag_upright; jf.setCursor (kursor baru (cursor.ne_resize_cursor)); } else if (p.getx () <= lebarnya && p.gety () <(jf.getHeight ()-lebarnya) && p.gety ()> lebarnya) {dragType = drag_left; jf.setCursor (kursor baru (cursor.w_resize_cursor)); } else if (p.getX ()> = (jf.getWidth ()-lebarnya) && p.gety () <(jf.getHeight ()-lebarnya) && p.gety ()> lebarnya) {dragType = drag_right; jf.setCursor (kursor baru (kursor.e_resize_cursor)); } else if (p.getx () <= lebarnya && p.gety ()> = (jf.getHeight ()-lebarnya)) {dragType = drag_bottomleft; jf.setCursor (kursor baru (cursor.sw_resize_cursor)); } else if (p.getX ()> lebarnya && p.getX () <(jf.getWidth ()-lebarnya) && p.gety ()> = (jf.getHeight ()-lebarnya)) {dragType = drag_bottom; jf.setCursor (kursor baru (cursor.s_resize_cursor)); } else if (p.getx ()> = (jf.getWidth ()-lebarnya) && p.gety ()> = (jf.getHeight ()-lebarnya)) {dragType = drag_bottomright; jf.setCursor (kursor baru (cursor.se_resize_cursor)); } else {dragType = drag_move; jf.setCursor (kursor baru (cursor.move_cursor)); mengembalikan false; } return true; }}Di atas adalah semua konten artikel ini. Saya berharap ini akan membantu untuk pembelajaran semua orang dan saya harap semua orang akan lebih mendukung wulin.com.