输出文本为何出现乱码(上)

sunwxb 2009-12-20 10:40:22
import java.awt.*;
import java.awt.event.*;
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;

import javax.swing.*;

public class SelectionDemo extends JFrame implements ActionListener,ItemListener
{
static SelectionDemo frame=new SelectionDemo();
static Save save=new Save();

static JLabel label1=new JLabel("总人数:");
static JLabel label2=new JLabel("最高票数选手:");
static JLabel label3=new JLabel("最高票数:");
static JDialog dialog=new JDialog();
static JLabel label4=new JLabel();
static JLabel label5=new JLabel();
static JLabel label6=new JLabel();
static JLabel label7=new JLabel();
static JLabel label8=new JLabel();
static JLabel label9=new JLabel();
static JLabel label10=new JLabel();
static JLabel label11=new JLabel();
static JLabel label12=new JLabel();
static JLabel label13=new JLabel();

static JButton button1=new JButton("提交");
static JButton button2=new JButton("刷新");
static JButton button3=new JButton("保存");
static JButton button4=new JButton("取消");

static JTextField tf1=new JTextField("",5);
static JTextField tf2=new JTextField("",15);
static JTextField tf3=new JTextField("",5);

static JCheckBox cb1=new JCheckBox("A");
static JCheckBox cb2=new JCheckBox("B");
static JCheckBox cb3=new JCheckBox("C");
static JCheckBox cb4=new JCheckBox("D");
static JCheckBox cb5=new JCheckBox("E");
static JCheckBox cb6=new JCheckBox("F");
static JCheckBox cb7=new JCheckBox("G");
static JCheckBox cb8=new JCheckBox("H");
static JCheckBox cb9=new JCheckBox("I");
static JCheckBox cb10=new JCheckBox("J");

static JPanel panel1=new JPanel();
static JPanel panel2=new JPanel();
static JPanel panel3=new JPanel();
static JPanel panel4=new JPanel();

static int count=0;
static int count1=0;
static int x1=100,x2=100,x3=100,x4=100,x5=100,x6=100,x7=100,x8=100,x9=100,x10=100;
static int y=250;


public static void main(String[] args)
{
BorderLayout br=new BorderLayout();
frame.setLayout(br);
frame.addWindowListener(save);
frame.setTitle("投票计数器");
frame.add(panel1,BorderLayout.NORTH);
panel1.setBounds(0,0,500,10);
panel1.add(label1);panel1.add(tf1);
panel1.add(label2);panel1.add(tf2);
panel1.add(label3);panel1.add(tf3);

frame.add(panel2,BorderLayout.WEST);
GridLayout gl=new GridLayout(10,1,0,3);
panel2.setLayout(gl);
panel2.add(cb1);
panel2.add(cb2);
panel2.add(cb3);
panel2.add(cb4);
panel2.add(cb5);
panel2.add(cb6);
panel2.add(cb7);
panel2.add(cb8);
panel2.add(cb9);
panel2.add(cb10);

frame.add(panel3,BorderLayout.SOUTH);
panel3.setBounds(150,450,10,10);
panel3.add(button1);
panel3.add(button2);

frame.add(panel4,BorderLayout.EAST);
GridLayout gl1=new GridLayout(10,1,0,3);
panel4.setLayout(gl1);
panel4.add(label4);panel4.add(label5);panel4.add(label6);panel4.add(label7);panel4.add(label8);
panel4.add(label9);panel4.add(label10);panel4.add(label11);panel4.add(label12);panel4.add(label13);
label4.setForeground(new Color(0,0,255));label5.setForeground(new Color(0,0,255));
label6.setForeground(new Color(0,0,255));label7.setForeground(new Color(0,0,255));
label8.setForeground(new Color(0,0,255));label9.setForeground(new Color(0,0,255));
label10.setForeground(new Color(0,0,255));label11.setForeground(new Color(0,0,255));
label12.setForeground(new Color(0,0,255));label13.setForeground(new Color(0,0,255));

frame.pack();
frame.setLocation(400,300);
//frame.setDefaultCloseOperation(EXIT_ON_CLOSE);
frame.setVisible(true);
frame.setResizable(false);

tf1.setEditable(false);
tf2.setEditable(false);
tf3.setEditable(false);

button1.addActionListener(frame);button2.addActionListener(frame);
button3.addActionListener(frame);button4.addActionListener(frame);

cb1.addItemListener(frame);cb2.addItemListener(frame);cb3.addItemListener(frame);
cb4.addItemListener(frame);cb5.addItemListener(frame);cb6.addItemListener(frame);
cb7.addItemListener(frame);cb8.addItemListener(frame);cb9.addItemListener(frame);
cb10.addItemListener(frame);

button1.setEnabled(false);
}
static class Save extends WindowAdapter
{
public void windowClosing(WindowEvent e)
{
dialog.setTitle("保存文件");
dialog.setSize(200,100);
dialog.add(button3);dialog.add(button4);
dialog.setLayout(new FlowLayout(FlowLayout.CENTER,5,30));
dialog.setLocation(400,300);
dialog.setVisible(true);
}
}

...全文
242 4 打赏 收藏 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
sunwxb 2009-12-20
  • 打赏
  • 举报
回复
保存的.txt中有乱码:"票"字显示乱码.
铁匠梁老师 2009-12-20
  • 打赏
  • 举报
回复
是界面是乱码还是杂的,你的编码中已经把国际化的东西写死在代码中了,界面的文字最好是国际化。避免乱码
sunwxb 2009-12-20
  • 打赏
  • 举报
回复
(接上)
public void actionPerformed(ActionEvent e)
{
JButton button=(JButton)e.getSource();
if(button==button1)
{
button1.setEnabled(false);
count++ ;//参加投票的人数
tf1.setText(""+count);

Graphics g=getGraphics();
g.setColor(Color.GREEN);
if(cb1.isSelected())
{
g.fillRect(x1,70,1,15);
x1++;
}
if(cb2.isSelected())
{
g.fillRect(x2,98,1,15);
x2++;
}
if(cb3.isSelected())
{
g.fillRect(x3,126,1,15);
x3++;
}
if(cb4.isSelected())
{
g.fillRect(x4,158,1,15);
x4++;
}
if(cb5.isSelected())
{
g.fillRect(x5,188,1,15);
x5++;
}
if(cb6.isSelected())
{
g.fillRect(x6,218,1,15);
x6++;
}
if(cb7.isSelected())
{
g.fillRect(x7,y,1,15);
x7++;
}
if(cb8.isSelected())
{
g.fillRect(x8,278,1,15);
x8++;
}
if(cb9.isSelected())
{
g.fillRect(x9,308,1,15);
x9++;
}
if(cb10.isSelected())
{
g.fillRect(x10,338,1,15);
x10++;
}
int array[]={x1-100,x2-100,x3-100,x4-100,x5-100,x6-100,x7-100,x8-100,x9-100,x10-100};
label4.setText(array[0] +"票");
label5.setText(array[1] +"票");
label6.setText(array[2] +"票");
label7.setText(array[3] +"票");
label8.setText(array[4] +"票");
label9.setText(array[5] +"票");
label10.setText(array[6] +"票");
label11.setText(array[7] +"票");
label12.setText(array[8] +"票");
label13.setText(array[9] +"票");

java.util.Arrays.sort(array);//排序,从小到大;
tf3.setText("" +array[9]);
if(array[9]==(x1-100))
{
tf2.setText("A");
}
if(array[9]==(x2-100))
{
tf2.setText("B");
}
if(array[9]==(x3-100))
{
tf2.setText("C");
}
if(array[9]==(x4-100))
{
tf2.setText("D");
}
if(array[9]==(x5-100))
{
tf2.setText("E");
}
if(array[9]==(x6-100))
{
tf2.setText("F");
}
if(array[9]==(x7-100))
{
tf2.setText("G");
}
if(array[9]==(x8-100))
{
tf2.setText("H");
}
if(array[9]==(x9-100))
{
tf2.setText("I");
}
if(array[9]==(x10-100))
{
tf2.setText("J");
}
if(array[9]==array[8]||array[9]==array[7]||array[9]==array[6]||array[9]==array[5]||
array[9]==array[4]||array[9]==array[3]||array[9]==array[2]||array[9]==array[1]||
array[9]==array[0])
{
tf2.setText("并列第一,如下图");
}
//
if(cb1.isSelected()){
cb1.setEnabled(true);
}else {
cb1.setEnabled(false);
}
if(cb2.isSelected()){
cb2.setEnabled(true);
}else {
cb2.setEnabled(false);
}
if(cb3.isSelected()){
cb3.setEnabled(true);
}else {
cb3.setEnabled(false);
}
if(cb4.isSelected()){
cb4.setEnabled(true);
}else {
cb4.setEnabled(false);
}
if(cb5.isSelected()){
cb5.setEnabled(true);
}else {
cb5.setEnabled(false);
}
if(cb6.isSelected()){
cb6.setEnabled(true);
}else {
cb6.setEnabled(false);
}
if(cb7.isSelected()){
cb7.setEnabled(true);
}else {
cb7.setEnabled(false);
}
if(cb8.isSelected()){
cb8.setEnabled(true);
}else {
cb8.setEnabled(false);
}
if(cb9.isSelected()){
cb9.setEnabled(true);
}else {
cb9.setEnabled(false);
}
if(cb10.isSelected()){
cb10.setEnabled(true);
}else {
cb10.setEnabled(false);
}
}else if(button==button2){
cb1.setSelected(false);cb2.setSelected(false);cb3.setSelected(false);cb4.setSelected(false);
cb5.setSelected(false);cb6.setSelected(false);cb7.setSelected(false);cb8.setSelected(false);
cb9.setSelected(false);cb10.setSelected(false);
cb1.setEnabled(true);cb2.setEnabled(true);cb3.setEnabled(true);cb4.setEnabled(true);
cb5.setEnabled(true);cb6.setEnabled(true);cb7.setEnabled(true);cb8.setEnabled(true);
cb9.setEnabled(true);cb10.setEnabled(true);
}else if(button==button3){
JFileChooser jf=new JFileChooser();
jf.showSaveDialog(SelectionDemo.this);
String filename=jf.getSelectedFile().getAbsolutePath().trim();
FileWriter fw;
BufferedWriter bw;
try{
fw=new FileWriter(filename +".txt");
bw=new BufferedWriter(fw);
String array[]={cb1.getText(),":",label4.getText(),"\r\n",cb2.getText(),":",label5.getText(),"\r\n"
,cb3.getText(),":",label6.getText(),"\r\n",cb4.getText(),":",label7.getText(),"\r\n",
cb5.getText(),":",label8.getText(),"\r\n",cb6.getText(),":",label9.getText(),"\r\n",
cb7.getText(),":",label10.getText(),"\r\n",cb8.getText(),":",label11.getText(),"\r\n",
cb9.getText(),":",label12.getText(),"\r\n",cb10.getText(),":",label13.getText()
};

for(int i=0;i<array.length;i++)
{
fw.write(array[i]);
}
fw.close();
JOptionPane.showMessageDialog(null,"保存成功");
dialog.dispose();
}catch(IOException ioe)
{
JOptionPane.showMessageDialog(null,"保存失败");
}
}else if(button==button4){
dialog.dispose();
}
}

}

sunwxb 2009-12-20
  • 打赏
  • 举报
回复
(下)
public void itemStateChanged(ItemEvent e)
{
if(count1>=1)//每个人至少投两个人
{
button1.setEnabled(true);
}else{
button1.setEnabled(false);
}
if(count1<5)//此投票计数器一个人只能投四票;count1:统计选人的数目;
{
if(cb1.isSelected())
{
count1++;
cb1.setEnabled(true);
}
if(cb2.isSelected())
{
count1++;
cb2.setEnabled(true);
}
if(cb3.isSelected())
{
count1++;
cb2.setEnabled(true);
}
if(cb4.isSelected())
{
count1++;
cb4.setEnabled(true);
}
if(cb5.isSelected())
{
count1++;
cb5.setEnabled(true);
}
if(cb6.isSelected())
{
count1++;
cb6.setEnabled(true);
}
if(cb7.isSelected())
{
count1++;
cb7.setEnabled(true);
}
if(cb8.isSelected())
{
count1++;
cb8.setEnabled(true);
}
if(cb9.isSelected())
{
count1++;
cb9.setEnabled(true);
}
if(cb10.isSelected())
{
count1++;
cb10.setEnabled(true);
}

}else{
count1=0;
if(cb1.isSelected())
{
cb1.setEnabled(true);
}else{
cb1.setEnabled(false);
}
if(cb2.isSelected())
{
cb2.setEnabled(true);
}else{
cb2.setEnabled(false);
}
if(cb3.isSelected())
{
cb3.setEnabled(true);
}else{
cb3.setEnabled(false);
}
if(cb4.isSelected())
{
cb4.setEnabled(true);
}else{
cb4.setEnabled(false);
}
if(cb5.isSelected())
{
cb5.setEnabled(true);
}else{
cb5.setEnabled(false);
}
if(cb6.isSelected())
{
cb6.setEnabled(true);
}else{
cb6.setEnabled(false);
}
if(cb7.isSelected())
{
cb7.setEnabled(true);
}else{
cb7.setEnabled(false);
}
if(cb8.isSelected())
{
cb8.setEnabled(true);
}else{
cb8.setEnabled(false);
}
if(cb9.isSelected())
{
cb9.setEnabled(true);
}else{
cb9.setEnabled(false);
}
if(cb10.isSelected())
{
cb10.setEnabled(true);
}else{
cb10.setEnabled(false);
}
}
}
大气污染是影响公众健康与生态环境的重要问题,精准的空气质量时空预测与污染源贡献度量化是精准治污的关键支撑。针对现有研究多源融合不充分、时空关联刻画不足、预测与源解析割裂三方面缺陷,本文设计实现了城市空气质量时空预测与污染源贡献度分析系统,融合监测、气象、工业排放与交通四类数据,构建基于时空注意力的LSTM(STAM-LSTM)预测模型与基于正定矩阵因子分解(PMF)的源解析模型,形成数据融合-特征工程-预测-源解析-可视化闭环。 系统实现四类数据时空对齐与融合,构建时序与空间邻域特征,以普通克里金插值生成1km网格浓度场;STAM-LSTM引入时空注意力自适应学习站点间污染传输时变权重,以72小时输入预测未来24小时逐小时PM2.5浓度;PMF识别交通、工业、燃煤、扬尘与二次生成五个源因子,量化各源全年贡献度并分析时空演变。 实验表明:STAM-LSTM预测RMSE 24.6、MAE 17.8、R² 0.88,相对LSTM基线(30.2)提升18.5%;普通克里金插值误差8.9,优于反距离加权(11.4);源解析显示交通源28.4%、工业源23.1%、燃煤源19.6%为主要贡献源,冬季燃煤源升至27.3%、早高峰交通源达34.8%,下风向工业源贡献高出上风向8~12个百分点;减排情景显示交通源减排20%可使年均PM2.5下降5.7%,与源贡献度排序一致。 系统按五模块14组件实现,功能测试16项用例全部通过,为大气污染预警、源管控与减排政策制定提供了决策依据。 【课程报告内容】 摘要 第1章 绪论 第2章 相关技术与理论 第3章 系统需求分析 第4章 系统总体设计 第5章 系统详细设计与实现 第6章 系统测试与分析 第7章 总结与展望 参考文献 附件-实现指南
基于iTransformer-BiGRU-KAN多模型融合的滚动轴承剩余寿命预测研究(Python代码实现)内容概要:本文提出了一种基于iTransformer-BiGRU-KAN多模型融合的滚动轴承剩余寿命预测方法,旨在通过结合多种先进深度学习模型的优势,提升在复杂工况下的预测精度与鲁棒性。该方法利用iTransformer捕捉长期时间序列中的全局依赖关系,通过BiGRU模型提取双向时序特征,最后引入KAN(Kernel Attention Network)增强非线性映射与关键特征的自适应加权能力,实现对轴承退化过程的精准建模。文中详细介绍了模型架构设计、训练流程及在公开数据集上的实验验证,结果表明该融合模型相比单一模型在预测精度和稳定性方面均有显著提升。; 适合人群:具备一定机器学习与深度学习基础,从事设备故障诊断、工业大数据分析或智能运维相关领域的研究人员及工程技术人员,尤其适合研究生及以上学历或有相关项目经验的专业人员。; 使用场景及目标:①应用于工业设备状态监测与预测性维护系统中,实现对滚动轴承等关键部件剩余寿命的精准预测;②为复杂时间序列回归任务提供多模型融合的设计思路与技术参考;③推动深度学习在智能制造与工业物联网领域的落地应用。; 阅读建议:建议读者结合Python代码实现部分,深入理解各子模型的接口设计与融合逻辑,重点关注特征融合机制与注意力权重的可视化分析,以便在实际项目中灵活调整与优化模型结构。
几何旋转和天线校准模式对GNSS相位缠绕的组合效应(Matlab代码实现)内容概要:本文研究了几何旋转和天线校准模式对全球导航卫星系统(GNSS)相位缠绕的组合效应,并提供了基于Matlab的代码实现方案。相位缠绕是GNSS高精度定位中的重要误差源,受卫星与接收机相对几何关系及天线相位中心变化的共同影响。文章通过建模分析几何旋转与天线校准参数对相位缠绕的影响机制,探讨二者耦合作用下的修正方法,旨在提升GNSS数据处理的精度与可靠性。研究涵盖了理论建模、算法实现与仿真实验,结合Matlab工具进行数值模拟与结果可视化,验证了所提方法的有效性。; 适合人群:具备一定GNSS基础知识和Matlab编程能力的科研人员、研究生及从事高精度定位相关工作的技术人员。; 使用场景及目标:①用于GNSS高精度数据处理中相位缠绕误差的精确建模与修正;②支持地壳形变监测、精密授时、卫星定轨等对定位精度要求较高的应用场景;③为相关算法开发与教学研究提供可复现的代码实例。; 阅读建议:建议读者结合GNSS误差处理的相关理论,边运行代码边理解算法细节,重点关注几何旋转模型与天线校准参数的集成方式,并可通过修改参数进行敏感性分析以加深理解。

62,620

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧