submit= new JButton("登陸");
堅(jiān)守“ 做人真誠(chéng) · 做事靠譜 · 口碑至上 · 高效敬業(yè) ”的價(jià)值觀,專(zhuān)業(yè)網(wǎng)站建設(shè)服務(wù)10余年為成都成都公路鉆孔機(jī)小微創(chuàng)業(yè)公司專(zhuān)業(yè)提供企業(yè)網(wǎng)站制作營(yíng)銷(xiāo)網(wǎng)站建設(shè)商城網(wǎng)站建設(shè)手機(jī)網(wǎng)站建設(shè)小程序網(wǎng)站建設(shè)網(wǎng)站改版,從內(nèi)容策劃、視覺(jué)設(shè)計(jì)、底層架構(gòu)、網(wǎng)頁(yè)布局、功能開(kāi)發(fā)迭代于一體的高端網(wǎng)站建設(shè)服務(wù)。
submit.setFont(new Font("宋體", Font.PLAIN, 16));
三個(gè)參數(shù)分別表示: 字體,樣式(粗體,斜體等),字號(hào)
submit.setForeground(Color.RED);
這個(gè)表示給組件上的文字設(shè)置顏色Color.RED表示紅色
當(dāng)然你也可以自己給RGB的值 比如 submit.setForeground(new Color(215,215,200));
JLabel組件支持HTML標(biāo)記代碼
infoLab= new JLabel("htmla href='地址'用戶(hù)登陸系統(tǒng)/a/html", JLabel.CENTER);
*注意:地址要單引號(hào)引起來(lái)。這個(gè)表示給用戶(hù)登錄系統(tǒng)幾個(gè)字增加超鏈接
infoLab .setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
這個(gè)表示給這個(gè)文字添加鼠標(biāo)樣式,當(dāng)鼠標(biāo)移動(dòng)到文字上,鼠標(biāo)變成手型
import java.awt.BorderLayout;
import java.awt.Button;
import java.awt.Color;
import java.awt.FlowLayout;
import java.awt.Frame;
import java.awt.Insets;
import java.awt.TextArea;
import java.awt.TextField;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.swing.BorderFactory;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextPane;
import javax.swing.border.EmptyBorder;
import javax.swing.text.AttributeSet;
import javax.swing.text.BadLocationException;
import javax.swing.text.SimpleAttributeSet;
import javax.swing.text.StyleConstants;
import javax.swing.text.StyleContext;
import javax.swing.text.StyledDocument;
public class main {
static String tf_str=null;
public static void main(String[] args) {
Frame a = new Frame("打印");
a.setBounds(400, 300, 400, 300);
a.setLayout(new FlowLayout());
TextField b = new TextField(20);
Button c = new Button("確定");
Button e = new Button("紅色");
Button f = new Button("藍(lán)色");
JTextPane d=new JTextPane();
d.setMargin(new Insets(100,100, 100, 100));
a.add(b);
a.add(c);
a.add(d);
a.add(e);
a.add(f);
a.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
c.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
d.setText("");
tf_str = b.getText().trim();
b.setText("");
appendToPane(d, tf_str, Color.black);
b.requestFocus();
}
});
e.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
d.setText("");
appendToPane(d, tf_str, Color.RED);
}
});
f.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
d.setText("");
appendToPane(d, tf_str, Color.BLUE);
}
});
a.setVisible(true);
}
private static void appendToPane(JTextPane tp, String msg, Color c) {
StyleContext sc = StyleContext.getDefaultStyleContext();
AttributeSet aset = sc.addAttribute(SimpleAttributeSet.EMPTY, StyleConstants.Foreground, c);
aset = sc.addAttribute(aset, StyleConstants.FontFamily, "宋體");
aset = sc.addAttribute(aset, StyleConstants.Alignment, StyleConstants.ALIGN_JUSTIFIED);
int len = tp.getDocument().getLength();
tp.setCaretPosition(len);
tp.setCharacterAttributes(aset, false);
tp.replaceSelection(msg);
}
}
1、示例代碼
public class ColorFrame extends JFrame {
private Container container;? //容器
private JPanel colorPanel; //用于反映顏色變化的面板
public ColorFrame() {? //構(gòu)造函數(shù)
? super( "調(diào)色板演示" );? //調(diào)用JFrame的構(gòu)造函數(shù)
? container = getContentPane();? //得到容器
? colorPanel=new JPanel();? //初始化面板
? JButton selectColorButton = new JButton( "選取顏色" );? //初始化顏色選擇按鈕
? selectColorButton.addActionListener(? //為顏色選擇按鈕增加事件處理
? ? ? ? ? new ActionListener() {
? ? ? ? ? ? ? public void actionPerformed( ActionEvent event )
? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? JColorChooser chooser=new JColorChooser(); //實(shí)例化顏色選擇器
? ? ? ? ? ? ? ? ? Color color=chooser.showDialog(ColorFrame.this,"選取顏色",Color.lightGray );? //得到選擇的顏色
? ? ? ? ? ? ? ? ? if (color==null)? //如果未選取
? ? ? ? ? ? ? ? ? ? ? color=Color.gray;? //則設(shè)置顏色為灰色
? ? ? ? ? ? ? ? ? colorPanel.setBackground(color);? //改變面板的背景色
? ? ? ? ? ? ? }
? ? ? ? ? });
? container.add(selectColorButton,BorderLayout.NORTH);? //增加組件
? container.add(colorPanel,BorderLayout.CENTER);? //增加組件
? setSize( 400, 130 );? //設(shè)置窗口尺寸
? setVisible(true);? //設(shè)置窗口可見(jiàn)
? setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE );? //關(guān)閉窗口時(shí)退出程序
}
public static void main(String args[]) {
? new ColorFrame();
}
}
2、效果
分析題目:
一 分析布局: 題目明確的指出了按鈕的位置和大小 ,那么說(shuō)明需要使用的布局是空布局(絕對(duì)布局) , 而JFrame窗口的內(nèi)容面板默認(rèn)布局是邊界布局(BorderLayout),所以需要設(shè)置一下
setLayout(null);//設(shè)置為絕對(duì)布局
二了解顏色. Color 可以通過(guò)紅,綠,藍(lán) 三原色, 不同的搭配, 形成不同的顏色.
每個(gè)原色的取值范圍是0~255, 比如紅色的rgb值就是r=255,g=0,b=0
胡蘿卜色 r=237,g=145,b=33
三添加顏色 ,java給JFrame添加顏色,比較特殊. 必須添加到內(nèi)容面板上,才能正常顯示(因?yàn)镴Frame分了好多層)
getContentPane().setBackground(new?Color(r,g,b));//設(shè)置窗口的面板背景色
四 事件處理分析: 點(diǎn)擊按鈕,會(huì)觸發(fā)ActionEvent 事件,這個(gè)事件會(huì)被ActionListener 接收器接收到, 只需要重寫(xiě)ActionListener 里的actionPerformed 方法, 即可實(shí)現(xiàn)點(diǎn)擊按鈕后,做某件事
五 具體參考代碼
import?java.awt.*;
import?java.awt.event.*;
import?javax.swing.*;
//?本類(lèi)繼承JFrame,實(shí)現(xiàn)了ActionListener接口
public?class?MyFrame?extends?JFrame?implements?ActionListener{
int?r?=?90;
int?g?=?15;
int?b?=?195;
public?MyFrame()?{
//組件的初始化
JButton?jbRed?=?new?JButton("red");
jbRed.setLocation(20,?80);//按鈕位置
jbRed.setSize(80,?40);//按鈕大小
jbRed.addActionListener(this);//添加點(diǎn)擊按鈕后的事件響應(yīng)?,因?yàn)楸绢?lèi)實(shí)現(xiàn)了ActionListener接口,所以可以傳入?yún)?shù)this
JButton?jbGreen?=?new?JButton("green");
jbGreen.setLocation(120,?80);
jbGreen.setSize(80,?40);
jbGreen.addActionListener(this);
JButton?jbBlue?=?new?JButton("blue");
jbBlue.setLocation(220,?80);
jbBlue.setSize(80,?40);
jbBlue.addActionListener(this);
//添加組件到窗口
add(jbRed);
add(jbGreen);
add(jbBlue);
//窗口的設(shè)置
setLayout(null);//因?yàn)槊恳粋€(gè)按鈕都設(shè)置了位置和大小,?那么應(yīng)該把窗口設(shè)置為空布局,?那么位置和大小才能有效
setTitle("窗口標(biāo)題");
getContentPane().setBackground(new?Color(r,g,b));//設(shè)置窗口的面板背景色
setLocation(220,?160);//?窗口位置
setSize(320,?240);//?窗口大小
//setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//點(diǎn)擊關(guān)閉按鈕時(shí),結(jié)束程序
//下面也可以實(shí)現(xiàn),點(diǎn)擊關(guān)閉按鈕時(shí),?結(jié)束程序
addWindowListener(new?WindowAdapter()?{
@Override
public?void?windowClosing(WindowEvent?e)?{//點(diǎn)擊關(guān)閉按鈕會(huì)觸發(fā)這個(gè)事件,調(diào)用這個(gè)方法
System.out.println("通過(guò)WindowListener實(shí)現(xiàn)關(guān)閉");
System.exit(0);//退出
}
});
}
public?void?actionPerformed(ActionEvent?e)?{
String?cmd=e.getActionCommand();
//通過(guò)ActionCommand?來(lái)判斷是哪一個(gè)按鈕被點(diǎn)擊了
if("red".equals(cmd))?{//如果是紅色按鈕被點(diǎn)擊了,那么紅色+10
r+=10;
if(r255)?{//如果red大于255?,可以設(shè)置為0?,也可以設(shè)置為255,一直鎖定為255?也可設(shè)置為初始的90,這里題目這里沒(méi)有要求
r=90;
}
}else?if("green".equals(cmd))?{
g+=10;
if(g255)?{
g=15;
}
}else?if("blue".equals(cmd)){
b+=10;
if(b255)?{
b=195;
}
}
this.getContentPane().setBackground(new?Color(r,g,b));
//System.out.println(this.getContentPane().getBackground());
}
public?static?void?main(String[]?args)?{
EventQueue.invokeLater(new?Runnable()?{
public?void?run()?{
new?MyFrame().setVisible(true);//啟動(dòng)窗口并設(shè)置可見(jiàn)
}
});
}
}
setForeground() 設(shè)置前景/字體顏色
setBackground() 設(shè)置背景顏色
具體實(shí)現(xiàn):(假設(shè)按鈕名稱(chēng)為:button)
設(shè)置紅字:
button.setForeground(Color.red);
設(shè)置黑色背影:
button.setBackground(Color.black);