可能重复:
为什么要使用getter和setter?
我已阅读的书Java,说这是好事,创建getter和setter方法的变量,如x和y.例如:
public int getX(){
return x;
}
public void setX(int x){
this.x = x;
}
Run Code Online (Sandbox Code Playgroud)
但与此有什么不同
...(shape.x)... // basically getX()
Run Code Online (Sandbox Code Playgroud)
和
shape.x = 90; // basically setX()
Run Code Online (Sandbox Code Playgroud)
如果选手和吸气器更好,你能解释一下会出现什么样的实际问题吗?
扩展JFrame而不是创建新的JFrame有什么优缺点?
例如:
public class Test extends JFrame {
setVisible(true);
}
Run Code Online (Sandbox Code Playgroud)
要么
public class Test {
JFrame test = new JFrame():
test.setVisible(true);
}
Run Code Online (Sandbox Code Playgroud) 我有一个程序,其中JPanel添加到JFrame:
public class Test{
Test2 test = new Test2();
JFrame frame = new JFrame();
Test(){
...
frame.setLayout(new BorderLayout());
frame.add(test, BorderLayout.CENTER);
...
}
//main
...
}
public class Test2{
JPanel test2 = new JPanel();
Test2(){
...
}
}
Run Code Online (Sandbox Code Playgroud)
我收到一个错误,要求我将'panel'的类型更改为'component'.我修复此错误?它要我做:Component panel = new Component();
我正在尝试用java读取文件:
Public class Test{
public static void main (String [] args) throws IOException {
BufferedReader f = new BufferedReader(new FileReader("test.in"));
//...
PrintWriter out = new PrintWriter(new BufferedWriter(new FileWriter("test.out")));
//...
}
}
Run Code Online (Sandbox Code Playgroud)
1)"test.in"的位置应该在哪里?(src?bin????)
2)"test.out"在哪里?
我已经阅读了java api,但我仍然不明白它们之间的主要区别:
1)ImageIcon 2)BufferedImage 3)VolatileImage 4)图像
有人能告诉我每个人的使用时间吗?
我正在Mac上创建一个使用Swing JMenu的Java应用程序.我想使用屏幕顶部的菜单栏,但它继续将菜单栏放在框架本身.如何将菜单栏移动到Mac上的屏幕顶部?
我有一个JDialog,它有两个字段,用户名和密码.我想使形式像普通的那样按下输入就像按下继续.
我已经尝试过了getRootPane().setDefaultButton(myButton);,但只是看起来不行.
我想用这些目标制作一个程序:
1)创建JButton 2)使用KeyBindings将按钮附加到键("A"键)3)单击"A"时执行一些代码
这是我到目前为止的代码:
// Imports
Public class Test{
JButton button = new JButton();
//...
Test(){
button.getInputMap().put(KeyStroke.getKeyStroke("A"), "Pressed");
//...
}
// Where do I add the code that responds when button is pressed?
}
Run Code Online (Sandbox Code Playgroud)
现在,在按下按钮的哪个位置添加我希望它执行的代码?
我有一个使用线程的Java程序.在我的run方法中,我有:
public void run() {
while(thread != null){
repaint();
System.out.println("hi");
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
break;
}
}
}
public void paintComponent(Graphics g) {
// painting stuff
}
Run Code Online (Sandbox Code Playgroud)
问题是执行了run方法,但是paintComponent没有调用该节.如果这不是重新绘制组件的正确方法,那么我应该如何重新绘制它?
假设我有一个将字母转换为数字的程序,如下所示:
输入:abcd
输出:1234
顺便说一下,这不是家庭作业。(这是为了好玩)
这是我到目前为止所拥有的:
public class Test {
public static void main(String[] args) throws IOException {
BufferedReader f = new BufferedReader(new FileReader("test.in"));
PrintWriter out = new PrintWriter(new BufferedWriter(new FileWriter("test.out.txt")));
StringTokenizer st = new StringTokenizer(f.readLine());
int i1 = Integer.parseInt(st.nextToken());
// How can I convert this into integers? (where a = 1, b = 2, and c = 3)
out.println(????);
out.close();
System.exit(0);
}
}
Run Code Online (Sandbox Code Playgroud)