我正在做一个窗口,有一个大的文本区域和一个小的文本区域下。这是我到目前为止得到的:
这是我的代码:
JPanel window=new JPanel(){
protected void paintComponent(Graphics g){
super.paintComponent(g);
ImageIcon ii=new ImageIcon("textEffect.png");
Image i=ii.getImage();
g.drawImage(i,0,0,null,this);
}
};
JLabel label=new JLabel("Say: ");
JTextArea dialog=new JTextArea(20,50);
JTextArea input=new JTextArea(1,46);
JScrollPane scroll=new JScrollPane(
dialog,
JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,
JScrollPane.HORIZONTAL_SCROLLBAR_NEVER
);
//main method
public static void main(String[] args){
new Window();
}
//Makes window and starts bot
public Window(){
super("Pollockoraptor");
setSize(600,400);
setResizable(false);
setDefaultCloseOperation(EXIT_ON_CLOSE);
dialog.setEditable(false);
dialog.setOpaque(false);
dialog.setBackground(new Color(0, 0, 0, 0));
dialog.setLineWrap(true);
input.addKeyListener(this);
label.setVerticalTextPosition(SwingConstants.BOTTOM);
label.setHorizontalTextPosition(SwingConstants.LEFT);
window.add(scroll);
window.add(label);
window.add(input);
window.setBackground(new Color(97,118,131));
add(window);
setVisible(true);
}'
我如何使较大的textarea部分透明,这样我就可以看到背景,我如何移动“比如说:”到较小的textarea前面?
如何使较大的文本区域部分透明,以便我可以看到背景
查看带有透明度的背景,了解使用透明背景时的问题,以及您可以使用的通用解决方案,这样您就不需要一直进行自定义绘画。
默认情况下,JPanel使用流布局。您可能想更改布局管理器,就个人而言,我推荐类似于GridBagLayout的东西,但这只是我的建议。
有关详细信息,请参阅在容器中布置组件
要使JTextArea透明,必须使JScrollPane透明。
Swing只知道如何绘制完全不透明或完全透明的组件。您可以创建半透明效果,方法是使组件透明并覆盖其“绘制组件”(paintComponent)方法,并使用字母组合(AlphaComposite)或使用颜色(alpha值设置为低于255的值)绘制
比如说...
和一般建议...
getPreferredSize,以在布局时获得更好的结果
在设置大小上使用JFrame#pack,这将根据内容的需要计算窗口大小,并考虑窗框装饰
问题内容: 我想用setText()方法更新jlabel和jtextfield,但是它不起作用。但是,其余代码仍在工作。代码如下; 在这里,islemSureci是JLabel,而textFiled是JTextField。设置它们后,它不起作用。代码中的所有工作完成后,它们就会出现。请问原因是什么? 问题答案: 我认为您的意思是 “所有工作完成之后” 是从文件(您注释的行)中加载文本。我认为这段代
我在一个非常简单的GUI中有一个JTextPane,我将它用作学习Java的游戏的输出控制台,我(尝试)将它与Windows类中的append方法一起使用,从另一个类(程序本身)或从command reader类调用它。理论上,它应该输出我输入的命令,在下几行中,它的输出来自所述程序。 另外,这里有一些示例输出 在调试过程中,我看到为Swing/AWT创建了一个线程,但我根本不了解线程,所以我只希
基本上我有两个账户,SSPUserInput和SSPViewer。我想在SSPUserInput类中按下一个按钮,在SSPViewer中更改一个JLabel名称。这基本上是一个石头剪刀布游戏。这是我第一次在这里发帖,如果我做错了什么,我很抱歉。
问题内容: 我正在使用捕获我中的更改。 但是,该方法将删除所有内容,然后粘贴文本。撤消操作时,我首先会看到一个空白区域,然后它会显示以前的文本。 繁殖方法: 运行以下代码 点击按钮 按撤消(您将看到一个空的文本区域!) 按撤消(您将看到实际的先前文本) 我想跳过3)。 问题答案: 您可以尝试如下操作:
问题内容: 我一直在尝试为我的Roguelike游戏添加一个JLabel。不幸的是,它似乎不起作用。到目前为止,这是我的代码: 我已经阅读了一些其他问题的解决方案,并且只需将JLabel添加到另一个解决方案中就可以完成。它不按这里的预期工作,为什么? PS:我不想为我的JPanel使用JLayeredPane。 问题答案: 不要使用组件(即JLabels)创建游戏环境。相反,您可以绘制所有游戏对象
所以我在我的桌面应用程序中创建了一个文本限制功能,但我似乎无法让它在准确的位置停止退行距。 限制的作用是,当用户没有单击Submit按钮时,它将函数CheckSize()作为一个新线程运行。CheckSize()查看jTextArea的内容,它有长度条件。一旦满足溢出长度(256个字符),就调用enforceLimit()将插入符号放在文本区域的末尾,并退格符一个字符。 现在的问题是,在测试过程中