我想添加JTable到JPanel其布局中null. JPanel包含其他组件.我必须添加JTable适当的位置.
我注意到人们建议不要混合使用Swing和AWT Components,但是我们看到了很多:
import javax.swing.AbstractButton;
import javax.swing.JButton;
import javax.swing.JPanel;
import javax.swing.JFrame;
import javax.swing.ImageIcon;
//AWT imports though only for listeners
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
Run Code Online (Sandbox Code Playgroud)
那么为什么包括Java在内的许多人(因为我在这里得到了他们的教程)仍然使用AWT导入,尽管我看到它主要用于Listeners.
你如何添加本地的Swing ListenerS /库的东西一样Key,Button,JComboBox按/ slections等?
或者我会用firePropertyChangeListeners()?(虽然这与Java Bean有关)
一段时间以来我一直很困惑,我的应用程序大部分都有Swing和AWT,据说这很糟糕?
我正在创建FileDialog并尝试获取FilePath for FileDialog对象.
FileDialog fd = new FileDialog(this, "Open", FileDialog.LOAD);
fd.setVisible(true);
String path = ?;
File f = new File(path);
Run Code Online (Sandbox Code Playgroud)
在这段代码中,我需要获得一个绝对的FilePath来与File对象一起使用.在这种情况下如何获取文件路径?
使用jdbc:ucanaccess方法将一个applet连接到Access DB时,出现以下错误:
Firstdb.java:44: error: unreported exception SQLException;
must be caught or declared to be thrown
stmt.executeUpdate(sql);
^
Run Code Online (Sandbox Code Playgroud)
我用于applet的代码如下(add()并setBounds()从中删除init()):
public class Firstdb extends Applet implements ActionListener {
TextField t1, t2;
Label l1;
Button b1, b2;
Connection con;
Statement stmt;
public void init() {
try {
con = DriverManager.getConnection("jdbc:ucanaccess://H:/test/db.mdb");
stmt = con.createStatement();
} catch (Exception e) {
}
}
public void actionPerformed(ActionEvent ae) {
String sql;
if (ae.getSource() == b1) {
sql = "insert into user …Run Code Online (Sandbox Code Playgroud) 我一直在阅读有关 AWT 与 Swing 的文章,但我不太清楚 Swing 的工作原理。我读过 Swing 位于 AWT 之上并且它是轻量级的(与 AWT 相对)。我的问题是“如果它使用 AWT 并继承 AWT 容器,它如何成为轻量级?” 我很迷惑。为什么使用 Swing over AWT 那么....为什么不直接使用 AWT?AWT 会减慢 Swing 组件的速度吗?
我正在按照Java : The complete reference 8th edition (JDK 7)AWT 上的示例进行操作,但无法在出现的窗口上成功显示字符串。大小和标题设置正确,窗口显示。如果我在 Paint() 方法的控制台上输出一个字符串,我会看到它实际上被调用了几次,但该字符串没有出现在我的应用程序窗口中。我看不出我在哪里偏离了这个例子;我实际上有一点代码(他们添加了一个鼠标侦听器和一个键侦听器):\
import java.awt.Dimension;
import java.awt.Frame;
import java.awt.Graphics;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
public class Main {
public static void main(String[] args) {
Application app = new Application();
app.setSize(new Dimension(640, 480));
app.setTitle("This is a test");
app.setVisible(true);
}
}
class MyWindowAdapter extends WindowAdapter {
public void windowClosing(WindowEvent we) {
System.exit(0);
}
}
class Application extends Frame {
public Application() {
addWindowListener(new MyWindowAdapter());
}
public void paint(Graphics g) {
System.out.println("Hey hey …Run Code Online (Sandbox Code Playgroud) 我在 SO 上读到,混合 awt 和 swing 并不是用 Java 进行 GUI 编程的好方法。但是,我无法找到任何在使用 Swing 时不使用某些 awt 组件的示例。例如,即使在使用swing时,我遇到的大多数示例都会使用awt进行布局和事件处理。
话虽如此,在使用 Java 的 GUI 编程中不混合 Swing 和 awt 意味着什么?这是否只是意味着不要同时从swing和awt中借用按钮,画布等图形小部件,或者只是完全单独使用swing或awt?或者可以使用来自 Swing 的图形单元(如按钮、面板)以及来自 awt 的事件处理和布局?
大多数情况下,进口看起来至少是这样的:
import javax.swing.*;
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.Color;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
Run Code Online (Sandbox Code Playgroud)
我可能是错的,但由于我是 Java GUI 的新手,我还没有看到使用完全摆动而不使用 awt 或以错误的方式查看此示例的示例。
我TextField在使用setText()方法清除AWT中的内容时遇到问题.显然,setText("")没有清除TextField按下"重置"按钮的内容.这是我的计划:
import java.awt.*;
import java.awt.event.*;
public class form extends Frame
{
Label lbl = new Label("Name:");
TextField tf = new TextField();
Button btn = new Button("Reset");
public form()
{
tf.setColumns(20);
addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
});
btn.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
tf.setText(""); //Problem occurs here. This does not clear the contents of the text field on pressing the 'Reset' button.
}
});
add(lbl);
add(tf); …Run Code Online (Sandbox Code Playgroud) 多年来我编写了很多Java应用程序,但绝大多数都是简单的命令行程序,只有几百行和(最多)几个类.
我的问题是:
我现在如何设计/编码该应用程序的接口?我从哪里开始?我的意思是有没有描述所涉及步骤的教程/资源?我知道Swing存在,但你从哪里开始,它是唯一的选择吗?
任何帮助/协助表示赞赏......