我有一个使用CardLayout的类,它有两张卡片,上面有一个按钮.我希望能够做的是放置一个像背景一样的图像,例如Windows中的桌面背景.该程序最终将有几张不同的卡片,我希望能够在每张卡片上放置不同的背景.我已尝试过在本网站上提出的其他类似问题中提出的许多建议,以及通过Google搜索我能找到的任何建议,但我似乎无法让它发挥作用.我知道使用CardLayout我不能将面板放在面板上,因此将图像放在JPanel上是行不通的.所以我的问题是,根据下面发布的代码,我有更好的方法来设置我的布局,以便它更好地工作,而且,我应该如何处理显示图像,使其在按钮的背景中?任何帮助将不胜感激.
import java.awt.*;
import java.awt.event.*;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
import javax.swing.*;
public class Cards implements ActionListener {
private JPanel cards;
private JButton button1;
private JButton button2;
private Image backgroundImage;
public void addComponentToPane(Container pane) throws IOException {
backgroundImage = ImageIO.read(new File("background.jpg"));
//create cards
JPanel card1 = new JPanel()
{
@Override
public void paintComponent(Graphics g)
{
g.drawImage(backgroundImage, 0, 0, null);
}
};
JPanel card2 = new JPanel();
button1 = new JButton("Button 1");
button2 = new JButton("Button 2");
button1.addActionListener(this);
button2.addActionListener(this);
card1.add(button1); …Run Code Online (Sandbox Code Playgroud) 我在尝试创建ArrayListJava 时遇到了问题,但更具体地说是在尝试add()使用它时.我在线上遇到语法错误people.add(joe); ......
Error: misplaced construct: VariableDeclaratorId expected after this token.
at people.add(joe);
^
Run Code Online (Sandbox Code Playgroud)
我的理解是,ArrayList为了我的目的,一个数组会比一个数组更好,所以我的问题是,是这样的情况,如果没有,我的语法错在哪里?
这是我的代码......
import java.util.ArrayList;
public class Person {
static String name;
static double age;
static double height;
static double weight;
Person(String name, double age, double height, double weight){
Person.name = name;
Person.age = age;
Person.height = height;
Person.weight = weight;
}
Person joe = new Person("Joe", 30, 70, 180);
ArrayList<Person> people = new ArrayList<Person>();
people.add(joe);
}
Run Code Online (Sandbox Code Playgroud) 我有一个简单的问题,我已经坚持了一段时间,我找不到答案.基本上,我正在创建一个对象并尝试访问变量而不使用静态变量,因为我被告知这是错误的方法.以下是该问题的一些示例代码.我在第一个类中收到一个无法解析为变量的错误.我希望能够做的是访问t.namemain之外的其他方法,也可以访问其他类.为了解决这个问题,我会Test2.name在Test2课堂上使用并将变量设为静态,如果我错了就纠正我,但我认为这是错误的做法.任何帮助将不胜感激=)
public class Test {
public static void main(String[] args) {
Test2 t = new Test2("Joe");
}
public void displayName() {
System.out.println("Name2: " + t.name);
}
}
public class Test2 {
String name;
public Test2 (String nm) {
name = nm;
}
}
Run Code Online (Sandbox Code Playgroud)