Форма, с которой приходит качание, не может удовлетворить наши потребности в приложении, поэтому вам нужно создать рамки JFrame любого изображения и формы, например, следующая картина:
И вы можете установить прозрачность фонового изображения формы
Следующее объясняет, как достичь эффекта вышеуказанной картины:
(1) Во -первых, вам нужна хорошая картина, такая как пергамент. Тем не менее, загруженная картинка представляет собой квадратный прямоугольник, а форма пергамента находится внутри картинки, поэтому мы используем функцию выреза в Meitu Xiuxiu или PS, чтобы выбрать пергаментную бумагу следующим образом:
(2) Сохраните изображение как прозрачный фон.
(3) Затем напишите Myjframe Унаследовать jframe, код заключается в следующем:
Импорт com.sun.awt.awtutilities; импортировать javax.swing.*; Импорт java.awt.*; открытый класс myjframe расширяет jframe {private float alpha; public myjframe (String bgpath, float alpha) {super (); MyContentPane RP = новый MyContentPane (BGPATH); rp.setopaque (false); // установить панель содержимого для прозрачного this.setContentPane (rp); this.setundecorated (true); это. Awtutilities.setWindowOpaque (this, false); // установлено в jframe как прозрачный this.alpha = alpha; } частный класс MyContentPane Extends jPanel {public ImageICon img; public mycontentpane (String bgpath) {super (); img = new Imageicon (test.class.getresource (bgpath)); } @Override Protected void paintcomponent (графика G) {alphacomposite ac = alphacomposite.getinstance (alphacomposite.src_over, alpha); Composite old = ((graphics2d) g) .getcomposite (); ((Graphics2d) g) .setComposite (ac); if (img! = null) {g.drawimage (img.getimage (), 0, 0, getWidth (), getheight (), это); } ((Graphics2d) g) .setComposite (Old); Super.PaintComponent (G); }}} Основным кодом вышеуказанной программы является: установите JFrame To Crongent, удалите границу JFrame, установите панель содержимого для прозрачной, а затем нарисуйте изображение на панели содержимого.
(4) Напишите тест на тестовый класс:
импортировать javax.swing.*; Импорт java.awt.*; Общедоступный тест класса {public static void main (string [] args) { /*** Установите прозрачность фонового изображения и фонового изображения, 0 является полностью прозрачным, а 1.0F - непрозрачная. */ myjframe f = new myjframe ("ab.png", 0,7f); f.setlayout (null); Font font = new Font ("宋体", font.plain, 30); Jlabel user = new jlabel ("имя пользователя"); user.setfont (font); user.SetBounds (100 150,100,30); Jtextfield userInput = new JTextField (); userInput.setFont (font); userInput.SetBounds (200,145,250,40); Jlabel ps = new jlabel ("пароль"); ps.setfont (шрифт); Ps.SetBounds (110,200,90,30); JTextfield psinput = new JTextField (); psinput.setfont (font); psinput.setbounds (200,195 250,40); F.Add (пользователь); F.Add (пользователь Intrept); F.Add (PS); f.Add (psinput); F.SetLocation (300 100); f.setDefaultCloseoPeration (jframe.exit_on_close); f.setvisible (true); }}(5) Поскольку граница удаляется, форма не может быть перетаскивается и растянута. Смотрите эту статью для Swing, чтобы реализовать перетаскивание и растяжение формы.
Выше всего содержание этой статьи. Я надеюсь, что это будет полезно для каждого обучения, и я надеюсь, что все будут поддерживать Wulin.com больше.