-
2021-03-09 03:41:46
我试图允许用户在Java中更改窗口的标题,而无需向窗口本身添加组件.我实际上正在尝试使用JInternalFrame进行此操作,但是图解决方案应该与JFrame类似.我只是想在右键单击窗口标题栏时弹出的上下文菜单中添加一个附加菜单项.例如,下面的Set标题:
此示例在Windows XP上运行,但也许有一种方法可以独立获取窗口上下文菜单OS,这可能类似于SystemTray.getSystemTray()(但对于应用程序中的各个窗口).由此,我将能够提供自己的ActionListener来弹出一个对话框,供用户输入新标题.
这是比我猜想更大的任务吗?有人有以前使用过的解决方案吗?
解决方法:
简短的回答:我认为这并不容易.我不确定是否有可能100%.
首先,JFrame和JInternalFrame实际上是完全不同的. JFrame是顶级组件,其标题栏通常由操作系统提供. JInternalFrame的全部内容(包括标题栏)由Swing LAF提供.
对于JInternalFrame,上下文菜单由LAF提供,而不是JInternalFrame本身.您必须对UIComponent进行某些操作才能更改上下文菜单.我认为您可能必须提供一个自定义UI组件才能执行此操作,此操作很丑陋,通常会在不同的LAF或工作间中断,但充其量看起来很糟糕.请参见BasicInternalFrameTitlePane,createSystemMenu方法.
标签:jinternalframe,swing,custom-titlebar,contextmenu,java
来源: https://codeday.me/bug/20191208/2090135.html
更多相关内容 -
一个简单的java窗口程序
2021-03-01 10:56:11一个简单的java窗口程序.前几日看康辉老师的吉大JAVA培训教程,看到一个并没有完全给出源代码的例子在这里补充完整,功能很简单,用最简单的方法来实现,没有涉及到太多复杂的东西没有全部完成,只有主体框架,字体...一个简单的java窗口程序.
前几日看康辉老师的吉大JAVA培训教程,看到一个并没有完全给出源代码的例子
在这里补充完整,功能很简单,用最简单的方法来实现,没有涉及到太多复杂的东西
没有全部完成,只有主体框架,字体设置和颜色设置那里的事件没实现,今天有点累,明天补上
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
class Title extends JFrame
{
private JMenuBar jMenuBar;
private JMenu fileMenu;
private JMenu setMenu;
private JMenu fontMenu;
private JMenu colorMenu;
private JMenuItem aboutMenuItem;
private JMenuItem exitMenuItem;
private JRadioButtonMenuItem fontRadioButtonItem[],colorRadioButtonItem[];
private JCheckBoxMenuItem styleCheckBoxItem[];
private JLabel label;
private Container container;
private final String colors[]={“Black”,”Blue”,”Red”,”Green”};
private final String fonts[]={“Serif”,”Monospaced”,”SansSerif”};
private final String styles[]={“Bold”,”Italic”};
public Title()
{
super(“字体样式和颜色的设定”);
jMenuBar=new JMenuBar();
fileMenu=new JMenu(“文件(F)”);
fileMenu.setMnemonic(‘F’);
jMenuBar.add(fileMenu);
aboutMenuItem=new JMenuItem(“关于(A)”);
aboutMenuItem.setMnemonic(‘A’);
fileMenu.add(aboutMenuItem);
aboutMenuItem.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
JOptionPane.showMessageDialog(Title.this, “关于这个程序:参考自吉大JAVA培训,六翼修改”);
}
});
exitMenuItem=new JMenuItem(“退出(X)”);
exitMenuItem.setMnemonic(‘X’);
fileMenu.add(exitMenuItem);
exitMenuItem.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
System.exit(1);
}
});
setMenu=new JMenu(“设置(S)”);
setMenu.setMnemonic(‘S’);
jMenuBar.add(setMenu);
fontMenu= new JMenu(“字体(T)”);
fontMenu.setMnemonic(‘T’);
setMenu.add(fontMenu);
colorMenu=new JMenu(“颜色(C)”);
colorMenu.setMnemonic(‘C’);
setMenu.add(colorMenu);
fontRadioButtonItem=new JRadioButtonMenuItem[fonts.length];
ButtonGroup fontGroup=new ButtonGroup();
for(int count=0;count
{
fontRadioButtonItem[count]=new JRadioButtonMenuItem(fonts[count]);
fontMenu.add(fontRadioButtonItem[count]);
fontGroup.add(fontRadioButtonItem[count]);
}
fontRadioButtonItem[0].setSelected(true);
fontMenu.addSeparator();
styleCheckBoxItem=new JCheckBoxMenuItem[styles.length];
for(int count=0;count
{
styleCheckBoxItem[count]=new JCheckBoxMenuItem(styles[count]);
fontMenu.add(styleCheckBoxItem[count]);
}
colorRadioButtonItem=new JRadioButtonMenuItem[colors.length];
ButtonGroup colorGroup=new ButtonGroup();
for(int count=0;count
{
colorRadioButtonItem[count]=new JRadioButtonMenuItem(colors[count]);
colorMenu.add(colorRadioButtonItem[count]);
colorGroup.add(colorRadioButtonItem[count]);
}
colorRadioButtonItem[0].setSelected(true);
container=getContentPane();
setJMenuBar(jMenuBar);
setSize(500,400);
setVisible(true);
}
}
public class FontsAndColor {
/**
* @param args
*/
public static void main(String[] args) {
Title application=new Title();
application.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
}
}
-
Java 窗口设置图标及背景图片
2021-05-28 20:21:41方法一: ImageIcon backbround = new ImageIcon("./photo/background.jpg"); //将图片添加到JLable标签 JLabel jlabel = new JLabel(backbround);... //将图片添加到窗口 add(jlabel); ...一、设置窗口图标
this.setIconImage(new ImageIcon("./photo/background.jpg").getImage());
二、设置背景图片
方法一:存在问题,如果你的窗口不大,图片可能会只截取到部分,解决办法,见方法二
ImageIcon backbround = new ImageIcon("./photo/background.jpg"); //将图片添加到JLable标签 JLabel jlabel = new JLabel(backbround); //设置标签的大小 jlabel.setBounds(0,0, getWidth(),getHeight() ); //将图片添加到窗口 add(jlabel);
方法二:
//设置背景图 ImageIcon backbround = new ImageIcon("./photo/background.jpg"); //将背景图进行压缩,一般如果你想显示一整张图片,就得把大小设置跟窗口一样 Image image = backbround.getImage(); Image smallImage = image.getScaledInstance(500, 500, Image.SCALE_FAST); ImageIcon backbrounds = new ImageIcon(smallImage); //将图片添加到JLable标签 JLabel jlabel = new JLabel(backbrounds); //设置标签的大小 jlabel.setBounds(0,0, getWidth(),getHeight() ); //将图片添加到窗口 add(jlabel);
效果如下:
-
向java窗口添加图片
2021-01-19 12:46:24首先要把一张图片导入java目录里面 随便的导入一张图片 在到java里创建一个窗体添加图片 public class dialoglx { public static void main(String [] args) { JFrame j=new JFrame("图片样式"); ...首先要把一张图片导入java目录里面
随便的导入一张图片
在到java里创建一个窗体添加图片
package khd.lx; import java.awt.Container; import javax.swing.*; public class bokeilx extends JFrame{ public bokeilx() { setBounds(390, 180, 800 , 500); //绝对定位窗体大小位置 Container c=getContentPane(); //容器 c.setLayout(null); //窗体不使用任何布局管理器 JLabel m=new JLabel(); Icon icon=new ImageIcon("src/img/java.gif"); //获取图片 JLabel la=new JLabel(); //标签 la.setIcon(icon); //将图片放在标签中 la.setHorizontalAlignment(SwingConstants.LEFT); //设置图片在标签的最左边 la.setBounds(10, 10,300, 150); //设置标签位置大小 la.setOpaque(true); c.add(la); setVisible(true); //设置窗体可见 setDefaultCloseOperation(EXIT_ON_CLOSE); //设置窗体退出样式 } public static void main(String[] args) { new bokeilx(); } }
-
java窗口跳转
2019-08-08 16:35:17假如有两个frame,分别为frame1,frame2,frame1加个按钮实现跳转.frame1代码如下 import java.awt.event.ActionEvent; import ... -
固定Java窗口的大小
2020-05-16 21:04:31//frame不能改变大小 this.setResizable(false); -
Java窗口切换
2019-05-14 12:00:001、运用事件处理相关知识,完成两个窗口之间的切换,例如:登陆窗口------》注册窗口 2、对本次作业进行总结,在编程过程中遇到哪些问题,如何解决,有哪些收获? package hyyy; import java.awt.Color; ... -
java窗口按钮位置设置
2019-10-01 04:01:25java窗口按钮位置设置 代码如下: package Day08; import java.awt.BorderLayout; import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JPanel; public class Homework2 extends JFrame ... -
java 窗口监听事件
2019-01-12 20:36:53System.out.println("您关闭了窗口..."); } /* * 最小化窗口之后,自动调用此方法 */ @Override public void windowIconified(WindowEvent e) { // TODO Auto-generated method stub ... -
Java窗口之文本框、按钮、菜单
2019-07-20 17:11:17import java.awt.Button; import java.awt.FlowLayout; import java.awt.Frame; import java.awt.TextArea; import java.awt.TextField; import java.awt.event.ActionEvent; import java.awt.event.A... -
java窗口背景颜色设置
2021-03-21 09:35:41窗口背景颜色是指直接调用JFrame或者Frame的setBackground(Color color)方法设置后显示出来的颜色。如果直接调用这个方法后,的确设置了背景颜色,但看到的却不是直接的JFrame或者Frame,而是JFrame.getContentPane... -
JAVA窗口编程 (2)图片的加载和移动
2018-06-03 20:28:28图片的加载 首先在src中新建一个文件夹用来存储图片。我新建的文件夹名称为image,要加载的图片叫sun.jpg。...import java.awt.Image; import java.awt.image.BufferedImage; import java.io.IOException; imp... -
java关闭窗口的6种方法
2022-04-03 21:09:35//Frame1.java import java.awt.*; import java.awt.event.*; import javax.swing.*; public class Frame1 extends JFrame { public Frame1() { enableEvents(AWTEvent.WINDOW_EVENT_MASK); this.setSize -
得到Java程序的WIN32窗口句柄(转)
2021-03-09 22:36:37我们知道C++的每个窗体都对应着一个句柄HWND,通过这个句柄...如果存在的话我们怎么来在Java程序中得到它并利用它来操作这个窗口呢?用spy++查看一下,Frame或者JFrame的对象或者子类对象确实都是存在这个窗口句柄的... -
JAVA窗口创建与设置
2018-04-12 09:53:40import java.awt.Button;import java.awt.Frame;import java.awt.Label;import java.awt.Toolkit;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JPanel;import javax.swing.JTextArea;i... -
Java建立窗口并通过按钮实现窗口跳转
2021-02-26 10:30:35为之前的游戏做了一个菜单的模型这是菜单类...importjava.awt.*;importjava.awt.event.ActionEvent;importjava.awt.event.ActionListener;publicclassMenuextendsJFrameimplementsActionListener{//定义两个按钮pr... -
java 输出文字到新建窗口
2021-03-11 17:21:43展开全部可以使用 ...下面是一个示e5a48de588b63231313335323631343130323136353331333365646238例可以参考一下:importjava.awt.FlowLayout;importjavax.swing.JFrame;importjavax.swing.JLabel;importjavax.sw... -
Java 窗口加载图片
2016-09-01 14:42:46/** * 加载图片 * @author Lixiangjian * */ public class BallGame extends ... System.out.println("李某某Java练习"); //在主函数中创建类并调用启动窗口 new BallGame().launchFrame(); } } -
Java如何将窗口居中显示
2021-07-25 18:48:36如果你将窗口坐标定为: x:窗口宽度/2 y:窗口高度/2 那么窗口会在右下方 如果居中,则x和y坐标都要加上窗口宽度和长度的一半 首先要获取屏幕的宽和高 public void setWindowLocation() { //获取屏幕大小 ... -
Java实现设置窗口颜色和大小
2020-10-29 11:07:241.问题描述:利用Swing设计一个简单的GUI应用程序,窗口标题设为“First GUI Program”,窗口大小设为(500, 300),窗口的背景色设为红色,居中显示。 2.代码实现 import java.awt.event.*; import java.awt.*; ... -
Java怎么给窗口设置背景
2021-01-13 15:22:41Java怎么给窗口设置背景 这个问题困扰了我好久,写不出什么高大上的程序,为了看起来高大上就要做一些必要的美化。 经过数篇csdn文章的洗礼,我保存了我的插入背景图片的方法。无论如何一个类,只要没有重复的变量名... -
如何把Java程序窗口在屏幕中间显示
2021-03-08 09:11:33摘要:这篇Java开发技术栏目下的“如何把Java程序窗口在屏幕中间显示”,介绍的技术点是“Java程序、屏幕中间、Java、显示、窗口、中间”,希望对大家开发技术学习和问题解决有帮助。举例说明:1、有一个200*200像素... -
JAVA基础登录窗口实现
2020-11-24 10:23:04JAVA基础登录窗口 以下是一个最基础的窗口实现,用户登录输入框可见,而密码输入框不可见。 代码如下: import java.awt.*; import javax.swing.*; public class 登录界面 { public static void main(String[] ... -
java窗口关闭事件
2011-07-31 23:43:25我启动一个frame1后,通过事件响应启动了第二个frame2,当我点击窗口上的X按钮关闭,只退出第二个frame,第一frame不关闭! 默认都是使用EXIT_ON_CLOSE,改成DISPOSE_ON_CLOSE即可 ++++++++++++++++ -
java用户界面-关闭当前窗口解决思路
2021-03-25 08:05:18java用户界面----关闭当前窗口我的小程序的意图是:有个界面A,界面中有若干的按钮,想要在点击其中的一个按钮的时候会出来另一个界面B,此时想要通过B中的按钮或者界面中的X号将B关闭掉现在遇到如题所示的问题在... -
JAVA怎么实现点击按钮关闭窗口
2021-02-12 15:20:08JAVA怎么实现点击按钮关闭窗口0import java.awt.BorderLayout;import javax.swing.JPanel;import javax.swing.JFrame;import javax.swing.JButton;import java.awt.Rectangle;public class xx extends JFrame {... -
java小白必看:如何用java创建一个窗口
2021-06-08 18:42:09import java.awt.*; import javax.swing.*; 接下来,我们再开始创建窗口,先看一下源代码 public class Circle99Frame extends Frame { //创建一个窗口 public static void main(String[] args) { // TODO ... -
java实现点击按钮事件弹出子窗口
2021-03-04 04:16:07本文实例为大家分享了java实现点击按钮事件弹出子窗口的具体代码,供大家参考,具体内容如下要求:1、在父窗口中添加一个按钮2、点击按钮弹出子窗口注意:这是JDK1.7版本在JDK1.7之前,JFrame是不能直接添加子窗口的...